蓝牙BLE

DA14580 学习笔记 - 内存分布

2016-11-04  本文已影响1571人  寂陌的季节

资料基于目前Dialog官方最新的 DA1458x_SDK_5.0.4
下载地址:https://support.dialog-semiconductor.com/connectivity/product/da14580


da14580内部存储空间

da14580内部存储空间有:

  • 84 kB ROM.
    包含Boot ROM code BLE协议栈相关代码.

da14580存储空间的地址映射

这几种不同的存储介质对应到不同的逻辑地址空间,在
***GP_CONTROL_REG[EM_MAPPING] ***寄存器中可以设置不同的方案。而官方SDK中选择了case23作为基本的映射方案。
参考: sdk\platform\arch\boot\rvds\system_ARMCM0.c:

SetBits32(GP_CONTROL_REG, EM_MAP, 23);

case23的地址空间示意图如下:


memory map case 23memory map case 23

其中, 0x80000 到 0x81FFF 为retention RAM,可以在deep sleep模式下维持数据,而deep sleep下除此之外的模块都会被关闭以降低功耗。
0x20000000 到 0x200097FF 为system RAM,可以作为用户程序空间,但注意某些地方是系统预留的:

  • Vector table, placed at 0x20000000.

另外补充一点,资料中似乎没有说明ROM code的运行时地址,不过通过SDK中的符号定义文件rom_symdef.txt可以看出是在0x0到0x00080000之间。

系统层面的内存空间分布

下面是一张high level的memory mapping示意图:


high level memory mappinghigh level memory mapping

几点说明:

总体来说,da14580内部存储空间划分的相当细致,特别是针对低功耗设计的retaintion RAM,使得芯片的功耗表现非常有优势。不过由此带来的问题就是学习成本相对于nordic,TI等厂商来说会比较高。另外由于没有内置flash,对于某些应用来说可能会有一些不方便,可以选择带flash的da14583。


上一篇下一篇

猜你喜欢

热点阅读