初级会员
- 积分
- 114
- 金钱
- 114
- 注册时间
- 2018-8-6
- 在线时间
- 13 小时
|
楼主 |
发表于 2018-10-13 21:27:10
|
显示全部楼层
以上问题已经解决了。就是重新分配一下存储器,如下:
#define m_flash_config_start 0x60000000
#define m_flash_config_size 0x00001000
#define m_ivt_start 0x60001000
#define m_ivt_size 0x00001000
#define m_interrupts_start 0x60002000
#define m_interrupts_size 0x00000400
#define m_text_start 0x60002400
#define m_text_size 0x03FFDC00
#define m_data3_start 0x80000000
#define m_data3_size 0x01E00000
#define m_ncache_start 0x81E00000
#define m_ncache_size 0x00200000
#define m_data_start 0x20000000
#define m_data_size 0x00020000
#define m_data2_start 0x20200000
#define m_data2_size 0x00040000
/* Sizes */
#if (defined(__stack_size__))
#define Stack_Size __stack_size__
#else
#define Stack_Size 0x4000
#endif
#if (defined(__heap_size__))
#define Heap_Size __heap_size__
#else
#define Heap_Size 0x0200
#endif
虽然问题解决了,但是我还有一个问题,如下:
我查看了keil5生成的.map文件,发现栈大小的设置是在DTCM里面,也就是设置m_data_size就可以决定栈的总大小
#define m_data_start 0x20000000
#define m_data_size 0x00020000
然而我发现参考手册上明明说DTCM有512KB,可是为什么m_data_size只能设置0x20000,即128KB。如果我设置成0x40000,编译没有问题,但是程序下载进去后,运行不起来。为什么?????
|
|