NORDIC nRF52840 ROM与RAM 开始地址及大小设置 (keil 环境)

目的:NORDIC nRF52840 ROM与RAM 开始地址及大小的正确设置方法(keil 环境)

硬件: NORDIC nRF 52840 DK (FLASH ROM: 1MB, RAM: 256 KB)

协议栈: s140_nrf52_6.1.0

Keil: u version ver 5.23.0.0


1. 设置界面;

IROM1 对应 1MB FLASH ROM; IRAM1 对应 256KB RAM.

 

2. 于 s140 包中文件 s140_nrf52_6.1.0_release-notes.pdf 查到, s140 协议栈分别占用 FLASH ROM,RAM 尺寸;

 

3. IROM1 start address 开始地址和 size 尺寸设置算法

IROM1 Start Address 开始地址: 0x26000, 152KB=152 * 1024 bytes = 155648 bytes = 0x26000 bytes.

IROM1 Size: 1MB - 152KB = (1024 - 152) * 1024 bytes = 892928 bytes = 0xDA000 bytes.

 

4. 剩余 FLASH ROM 尺寸, 用于存放: Code + RO-data + RW-data, 留意编译时这三者字节数,注意其总和不得超过剩余 FLASH ROM;

 

5. s140 协议栈最小需求 RAM 是 5.54KB ( 0x1628 bytes), 但实际 RAM 空间需求还依赖 sd_ble_enable() 配置;
先在RAM开始区域设置一个较小的开始值,让程序运行时报错, nrf_sdh_ble.c 中设置断点, 查看真实 RAM 需求的开始地址;

 

6. IRAM1 Start Address 开始地址设置为上述调试获取的值 (变量: p_app_ram_start); 

 

7. IRAM1 Size 算法

IRAM1 Size 按上述调试显示,可快捷设置为值 ram_end_address_get() - (*p_app_ram_start);

RAM 总尺寸 256 KB = 256 * 1024 bytes = 262144 bytes = 0x40000 bytes.

注: RAM 起始基地址是 0x2000 0000;

假设 IRAM1 Start Address: 0x2001 8000,  则 IRAM1 Size = 0x40000 - 0x18000 bytes = 28000 bytes

 

8. 存放 s140 协议栈后, 剩余 RAM 用于应用程序运行; 剩余 RAM 空间尺寸须 > (pZI-data + RW-data).

 

9. KEIL 编译输出参考 (Code,RO-data,RW-data,ZI-data )

10. 备注, 关于 NRF_LOG_DEBUG 输出于sdk_config.h 中配置

 

  • 6
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值