前言

由于没有官方资料,手册,MDK的支持包都没有,网上也搜不到信息,尝试下建立工程,尝试下能不能下载程序。

二.开发环境

由于没有ME的MDK支持包,所以先随便找一个32G030的设备建立工程,

这里使用STM32G030

可以看到可以识别芯片IDCODE

115348ang4yr3hr03lh0o5

BB11477就是Cortex-M0的IDCODE

添加下载算法,没有ME的算法,添加STM32的算法

下载不了,说明ME的FLASH和STM32的可能不一样。

115348wzbuzd5kcgy6g5bo

三.不下载程序进入仿真环境

先配置不下载

115348v94n297wswavg9b2

四.确认存储空间映射

先短接BOOT跳线,进入Bootrom

Cortex系列的BootRom都是位于0x1FFFxxxx,所以直接尝试读该区域的mem,最终确认如下,从0x1FFF0000处开始可以读。

115349lk999k9z4t56wgwj

再往前一个字节0x1FFEFFFF就读不到

115349sn929ykh7vvneuks

我们再来看这部分mem,对于Cortex-m系列第一个word会加载到SP即栈位置,第二个WORD加载到PC即程序入口。

这里看到分别是

0x100000F8 SP

0x1FFF0101 PC

115349rjqsgzbaecee9ppc

0x1FFF0101 PC最后一位位表示位Thumb指令,地址为0x1FFF0100

复位

115349etxkcwm3z7ehtxch

看到PC正好是位于0x1FFF0100, SP为0x10000F8

115349xas3ah4u3cqdo3su

所以可以确认RAM位于0x10000000,而不是常见的0x20000000.

115349byzzn935gj5936ag

115350r28n9kv5o2ulll50

10000000处地址可以修改也说明是RAM

115350x18pxxrcyccpluy8

上面确认了RAM的地址,BootRom的地址,继续来看FLASH的地址。

一般都是位于0x08000000

但是我们看到该地址读不到

115350nht5i779h9fbt070

熟悉Cortex-m系列的话,知道有remap,所以我们尝试下0地址

看到0地址和BootRom的内容是一样的,说明0地址是启动的remap地址,即从bootrom启动则映射为bootrom,所以这里还是没有找到flash的地址。

115350v9nj5n9mnn85bnjf

我们继续尝试以0x10000000为单位遍历

看到0x40000000可读,这里一般是对应的是外设寄存器

115350kbrbrcydxxa9orba

0x50000000也可读

115350tlq76zjkqkll5lkl

0xe0000000也可读

115351feee09wjb6iebgbi

40000000和50000000,0xe00000000, 0x1FFF0000和stm32g030应该是一样的

115351ksf0f00nev764shs

RAM地址这里是0x10000000不一样

115351o6jthh69t7jjt9j1

0地址也是和启动配置相关的remap映射地址,是一样的

115351ahxsithzhnqkgctn

现在就差确认flash的地址了。

C8t6确认flash大小是64KB,0x40000,那么我们干脆以64KB为单位遍历,还是没有搜到。

这里还有一种可能几十flash被读保护了,我们来看opt区域

对比了stm32的好像对应不上,所以也无法解析

115351gutai03zinz0sjqz

115351jlbugbd34utz1t1s

所以目前flash地址还是无法确认。

且也没有FLM下载文件,无法下载程序。

不短接BootROM

可以看到会从BoorROM运行继续运行到0地址

115352xemglfl82d8zumd9

0地址对应SP和PC也是对应的,说明此时0地址映射到FLASH了。

115352vvxm0n3zsasnnlku

五.总结

文档,资料缺乏,暂时无法继续了,就先不折腾了,等有资料再说吧。