Implement _stlink_usb_write_mem32|8
[fw/stlink] / src / test_usb.c
1 #include <stdio.h>
2 #include "stlink-common.h"
3
4
5 int main(int ac, char** av) {
6     stlink_t* sl;
7
8     sl = stlink_open_usb(NULL, 10);
9     if (sl != NULL) {
10         printf("-- version\n");
11         stlink_version(sl);
12         
13         printf("mode before doing anything: %d\n", stlink_current_mode(sl));
14
15         if (stlink_current_mode(sl) == STLINK_DEV_DFU_MODE) {
16             printf("-- exit_dfu_mode\n");
17             stlink_exit_dfu_mode(sl);
18         }
19
20         printf("-- enter_swd_mode\n");
21         stlink_enter_swd_mode(sl);
22
23         printf("-- mode after entering swd mode: %d\n", stlink_current_mode(sl));
24
25         printf("-- chip id: %#x\n", stlink_chip_id(sl));
26         printf("-- core_id: %#x\n", stlink_core_id(sl));
27
28         cortex_m3_cpuid_t cpuid;
29         stlink_cpu_id(sl, &cpuid);
30         printf("cpuid:impl_id = %0#x, variant = %#x\n", cpuid.implementer_id, cpuid.variant);
31         printf("cpuid:part = %#x, rev = %#x\n", cpuid.part, cpuid.revision);
32
33         printf("-- read_sram\n");
34         static const uint32_t sram_base = 0x8000000;
35         uint32_t off;
36         for (off = 0; off < 16; off += 4)
37             stlink_read_mem32(sl, sram_base + off, 4);
38
39         printf("FP_CTRL\n");
40         stlink_read_mem32(sl, CM3_REG_FP_CTRL, 4);
41         
42         // no idea what reg this is..  */
43         //     stlink_read_mem32(sl, 0xe000ed90, 4);
44         // no idea what register this is...
45         //     stlink_read_mem32(sl, 0xe000edf0, 4);
46         // offset 0xC into TIM11 register? TIMx_DIER?
47         //     stlink_read_mem32(sl, 0x4001100c, 4); */
48
49         write_uint32(sl->q_buf,0x01234567);
50         stlink_write_mem32(sl,0x200000a8,4);
51         write_uint32(sl->q_buf,0x89abcdef);
52         stlink_write_mem32(sl,0x200000ac, 4);
53         stlink_read_mem32(sl, 0x200000a8, 4);
54         stlink_read_mem32(sl, 0x200000ac, 4);
55         
56         write_uint32(sl->q_buf,0x01234567);
57         stlink_write_mem8(sl,0x200001a8,3);
58         write_uint32(sl->q_buf,0x89abcdef);
59         stlink_write_mem8(sl, 0x200001ac, 3);
60         stlink_read_mem32(sl, 0x200001a8, 4);
61         stlink_read_mem32(sl, 0x200001ac, 4);
62        
63
64         printf("-- status\n");
65         stlink_status(sl);
66
67         printf("-- reset\n");
68         stlink_reset(sl);
69
70         printf("-- status\n");
71         stlink_status(sl);
72
73         printf("-- step\n");
74         stlink_step(sl);
75
76         printf("-- run\n");
77         stlink_run(sl);
78
79         printf("-- exit_debug_mode\n");
80         stlink_exit_debug_mode(sl);
81
82         stlink_close(sl);
83     }
84
85     return 0;
86 }