2020-11-16 16:58:58 信驰达科技 24

芯片型号:nrf52840

模块型号:rf-bm-nd05/rf-bm-nd06

        硬件: 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 中配置

蓝牙模块方案商



标签: nrf52840 nrf52
银河国际galaxy首页
产品
新闻
联系
"));