内存清除/复制的启动代码在哪里?

了解更多常见问题教程

4个职位/ 0个新职位
最后发表
高手toshinari
离线
最后看到:7个月5天前
加入:2016-09-27 03:29
内存清除/复制的启动代码在哪里?

你好,我正在检查SDK6.0.2中的启动序列。
我想是boot_vectors中的Reset_Handler。S为启动代码。
但是Reset_Handler没有一个清除/复制内存的例程(比如gcc的.bss .dat部分)。
在哪里做?

设备:
Qinjiny_Dialog
离线
最后看到:1个月4天前
工作人员
加入:2016-11-01 05:47
你好高手,

你好高手,

启动代码被刻录在ROM中,你无法从SDK的任何地方看到它。您可以参考数据表中的4.3.3章来获得DA14585引导顺序的工作流。

高手toshinari
离线
最后看到:7个月5天前
加入:2016-09-27 03:29
嗨,Qinjiny

嗨,Qinjiny

谢谢你的快速回复。

我想你指的是数据表中的“4.4.3 BootROM Sequence”。
它被写入Remap SysRAM到addr 0x00,并在BootROM Sequence结束时复位SW(图12:BootROM Sequence)。

你的意思是在软件重置之前,通过刻录ROM清除/复制启动内存吗?
我认为C启动程序一般复位后都可以工作。

高手toshinari
离线
最后看到:7个月5天前
加入:2016-09-27 03:29
我在

我在地图文件中发现了以下内容。

__scatterload 0x07fc828d拇指代码28 init.o(.text)
__scatterload_rt2 0x07fc828d拇指代码0 init.o(.text)
__scatterload_copy 0x07fc82b1 Thumb Code 14 handlers.o(i.__scatterload_copy)
__scatterload_null 0x07fc82bf Thumb Code 2 handlers.o(i.__scatterload_null)
__scatterload_zeroinit 0x07fc82c1 Thumb Code 14 handlers.o(i.__scatterload_zeroinit)

我猜这些处理内存清除/复制。
正如秦津尼所说,这些并没有在源代码中提供。
但可能,这些工作正确根据分散文件。

现在我明白了,我不需要在乎。
谢谢你!