完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
小熊派L431开发板运行RT-thread nano v3.1.5,移植了完整版中提供的部分驱动,有如下疑问,在官方提供的完整版bearpi开发板bsp工程实例中,启用RT_USING_HEAP开关,在drv_common.c某函数中调用 #if defined(RT_USING_HEAP) #define STM32_SRAM1_START (0x20000000) #if defined(RT_USING_USER_MAIN) && defined(RT_USING_HEAP) |
|
相关推荐
4个回答
|
|
define HEAP_BEGIN STM32_SRAM1_START 这个不是这么定义的,很多全局变量可能放到这个位置,直接的内存 over 了
试试下面的定义 #if defined(__CC_ARM) || defined(__CLANG_ARM) extern int Image$$RW_IRAM1$$ZI$$Limit; #define HEAP_BEGIN (&Image$$RW_IRAM1$$ZI$$Limit) #elif __ICCARM__ #pragma section="CSTACK" #define HEAP_BEGIN (__segment_end("CSTACK")) #else extern int __bss_end; #define HEAP_BEGIN (&__bss_end) #endif #define HEAP_END STM32_SRAM_END |
|
|
|
Github上很多BSP都没这么定义,如我现在用的STM32WLE5的BSP就直接这么定义的
#define STM32_FLASH_START_ADRESS ((uint32_t)0x08000000) #define STM32_FLASH_SIZE (128 * 1024) #define STM32_FLASH_END_ADDRESS ((uint32_t)(STM32_FLASH_START_ADRESS + STM32_FLASH_SIZE)) #define STM32_SRAM1_SIZE (16) #define STM32_SRAM1_START (0x20000000) #define STM32_SRAM1_END (STM32_SRAM1_START + STM32_SRAM1_SIZE * 1024) #define STM32_SRAM2_SIZE (32) #define STM32_SRAM2_START (0x20008000) #define STM32_SRAM2_END (STM32_SRAM2_START + STM32_SRAM2_SIZE * 1024) #define HEAP_BEGIN STM32_SRAM1_START #define HEAP_END STM32_SRAM1_END |
|
|
|
|
|
|
|
一个是 HEAP RAM 的定义方法,一个是 FLASH 地址的定义方法。这俩没有可比性,也没有了参考性。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
AI模型部署边缘设备的奇妙之旅:如何在边缘端部署OpenCV
1591 浏览 0 评论
tms320280021 adc采样波形,为什么adc采样频率上来波形就不好了?
1112 浏览 0 评论
1557 浏览 0 评论
1402 浏览 0 评论
1044 浏览 0 评论
74644 浏览 21 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-20 01:03 , Processed in 0.552177 second(s), Total 47, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号