前言
由于没有官方资料,手册,MDK的支持包都没有,网上也搜不到信息,尝试下建立工程,尝试下能不能下载程序。
二.开发环境
由于没有ME的MDK支持包,所以先随便找一个32G030的设备建立工程,
这里使用STM32G030
可以看到可以识别芯片IDCODE
BB11477就是Cortex-M0的IDCODE
添加下载算法,没有ME的算法,添加STM32的算法
下载不了,说明ME的FLASH和STM32的可能不一样。
三.不下载程序进入仿真环境
先配置不下载
四.确认存储空间映射
先短接BOOT跳线,进入Bootrom
Cortex系列的BootRom都是位于0x1FFFxxxx,所以直接尝试读该区域的mem,最终确认如下,从0x1FFF0000处开始可以读。
再往前一个字节0x1FFEFFFF就读不到
我们再来看这部分mem,对于Cortex-m系列第一个word会加载到SP即栈位置,第二个WORD加载到PC即程序入口。
这里看到分别是
0x100000F8 SP
0x1FFF0101 PC
0x1FFF0101 PC最后一位位表示位Thumb指令,地址为0x1FFF0100
复位
看到PC正好是位于0x1FFF0100, SP为0x10000F8
所以可以确认RAM位于0x10000000,而不是常见的0x20000000.
10000000处地址可以修改也说明是RAM
上面确认了RAM的地址,BootRom的地址,继续来看FLASH的地址。
一般都是位于0x08000000
但是我们看到该地址读不到
熟悉Cortex-m系列的话,知道有remap,所以我们尝试下0地址
看到0地址和BootRom的内容是一样的,说明0地址是启动的remap地址,即从bootrom启动则映射为bootrom,所以这里还是没有找到flash的地址。
我们继续尝试以0x10000000为单位遍历
看到0x40000000可读,这里一般是对应的是外设寄存器
0x50000000也可读
0xe0000000也可读
40000000和50000000,0xe00000000, 0x1FFF0000和stm32g030应该是一样的
RAM地址这里是0x10000000不一样
0地址也是和启动配置相关的remap映射地址,是一样的
现在就差确认flash的地址了。
C8t6确认flash大小是64KB,0x40000,那么我们干脆以64KB为单位遍历,还是没有搜到。
这里还有一种可能几十flash被读保护了,我们来看opt区域
对比了stm32的好像对应不上,所以也无法解析
所以目前flash地址还是无法确认。
且也没有FLM下载文件,无法下载程序。
不短接BootROM
可以看到会从BoorROM运行继续运行到0地址
0地址对应SP和PC也是对应的,说明此时0地址映射到FLASH了。
五.总结
文档,资料缺乏,暂时无法继续了,就先不折腾了,等有资料再说吧。