Implement _stlink_usb_write_mem32|8
[fw/stlink] / src / test_usb.c
index 18b4fe5b08d1e00e620ddb7c308f68d5bbd464d7..e681aed697cb283a47b6163ac0e0686bad6fe32c 100644 (file)
@@ -9,6 +9,8 @@ int main(int ac, char** av) {
     if (sl != NULL) {
         printf("-- version\n");
         stlink_version(sl);
+        
+        printf("mode before doing anything: %d\n", stlink_current_mode(sl));
 
         if (stlink_current_mode(sl) == STLINK_DEV_DFU_MODE) {
             printf("-- exit_dfu_mode\n");
@@ -18,11 +20,15 @@ int main(int ac, char** av) {
         printf("-- enter_swd_mode\n");
         stlink_enter_swd_mode(sl);
 
-        printf("-- current_mode\n");
-        stlink_current_mode(sl);
+        printf("-- mode after entering swd mode: %d\n", stlink_current_mode(sl));
 
-        /*     printf("-- core_id\n"); */
-        /*     stlink_core_id(sl); */
+        printf("-- chip id: %#x\n", stlink_chip_id(sl));
+        printf("-- core_id: %#x\n", stlink_core_id(sl));
+
+        cortex_m3_cpuid_t cpuid;
+        stlink_cpu_id(sl, &cpuid);
+        printf("cpuid:impl_id = %0#x, variant = %#x\n", cpuid.implementer_id, cpuid.variant);
+        printf("cpuid:part = %#x, rev = %#x\n", cpuid.part, cpuid.revision);
 
         printf("-- read_sram\n");
         static const uint32_t sram_base = 0x8000000;
@@ -30,11 +36,30 @@ int main(int ac, char** av) {
         for (off = 0; off < 16; off += 4)
             stlink_read_mem32(sl, sram_base + off, 4);
 
-        printf("-- read_mem, cpuid\n");
-        stlink_read_mem32(sl, 0xe000e008, 4);
-        /*     stlink_read_mem32(sl, 0xe000ed90, 4); */
-        /*     stlink_read_mem32(sl, 0xe000edf0, 4); */
-        /*     stlink_read_mem32(sl, 0x4001100c, 4); */
+        printf("FP_CTRL\n");
+        stlink_read_mem32(sl, CM3_REG_FP_CTRL, 4);
+        
+        // no idea what reg this is..  */
+        //     stlink_read_mem32(sl, 0xe000ed90, 4);
+        // no idea what register this is...
+        //     stlink_read_mem32(sl, 0xe000edf0, 4);
+        // offset 0xC into TIM11 register? TIMx_DIER?
+        //     stlink_read_mem32(sl, 0x4001100c, 4); */
+
+        write_uint32(sl->q_buf,0x01234567);
+        stlink_write_mem32(sl,0x200000a8,4);
+        write_uint32(sl->q_buf,0x89abcdef);
+        stlink_write_mem32(sl,0x200000ac, 4);
+        stlink_read_mem32(sl, 0x200000a8, 4);
+        stlink_read_mem32(sl, 0x200000ac, 4);
+        
+        write_uint32(sl->q_buf,0x01234567);
+        stlink_write_mem8(sl,0x200001a8,3);
+        write_uint32(sl->q_buf,0x89abcdef);
+        stlink_write_mem8(sl, 0x200001ac, 3);
+        stlink_read_mem32(sl, 0x200001a8, 4);
+        stlink_read_mem32(sl, 0x200001ac, 4);
+       
 
         printf("-- status\n");
         stlink_status(sl);
@@ -47,7 +72,6 @@ int main(int ac, char** av) {
 
         printf("-- step\n");
         stlink_step(sl);
-        getchar();
 
         printf("-- run\n");
         stlink_run(sl);