Allow to write to sram from the command line
authorUwe Bonnes <bon@elektron.ikp.physik.tu-darmstadt.de>
Thu, 19 Jan 2012 13:07:14 +0000 (14:07 +0100)
committerUwe Bonnes <bon@elektron.ikp.physik.tu-darmstadt.de>
Thu, 19 Jan 2012 13:07:14 +0000 (14:07 +0100)
flash/main.c
src/stlink-common.h

index d61b22bd06f424978482b83e3ebfe2f07d69cc3b..0f3040d37472a7d4ab3e0e8e91d68b01e232c3c6 100644 (file)
@@ -109,7 +109,12 @@ int main(int ac, char** av)
 
   if (o.do_read == 0) /* write */
   {
-    err = stlink_fwrite_flash(sl, o.filename, o.addr);
+    if ((o.addr >= sl->flash_base) &&
+       (o.addr < sl->flash_base + sl->flash_size))
+       err = stlink_fwrite_flash(sl, o.filename, o.addr);
+    else if ((o.addr >= sl->sram_base) &&
+            (o.addr < sl->sram_base + sl->sram_size))
+       err = stlink_fwrite_sram(sl, o.filename, o.addr);
     if (err == -1)
     {
       printf("stlink_fwrite_flash() == -1\n");
index a1442f366cd3ab0738e9522c0aa9921dc3cbe2d7..155c6c003083e5e3fe45c4b253ccb67d3370e222 100644 (file)
@@ -363,6 +363,7 @@ extern "C" {
     int stlink_erase_flash_mass(stlink_t* sl);
     int stlink_write_flash(stlink_t* sl, stm32_addr_t address, uint8_t* data, unsigned length);
     int stlink_fwrite_flash(stlink_t *sl, const char* path, stm32_addr_t addr);
+    int stlink_fwrite_sram(stlink_t *sl, const char* path, stm32_addr_t addr);
     int stlink_verify_write_flash(stlink_t *sl, stm32_addr_t address, uint8_t *data, unsigned length);
     
     // PUBLIC