从汇编文件导出的标签在c中不可访问

时间:2019-02-08 17:49:46

标签: c pointers arm keil

当我在keil模拟器中运行代码时,变量__heap_base(这是启动文件中的标签)不包含堆基(我发现堆基为0x20000000),但始终显示为0x00000000。如何使__heap_base保持正确的值,以便我可以增加和减少堆基数。

尝试了一些方法后,我发现即使将地址0x20000000作为无符号的32位整数存储在变量中,我也无法访问内存位置。

            #include <stdint.h>
            extern uint32_t __heap_base;
            uint32_t memallocate(int size)
            {
                 uint32_t temp=__heap_base;
                 __heap_base=__heap_base+size;
                 return temp;
            }
            int maina()
            {
                int *p=(int*)memallocate(sizeof(int));
                *p=5;
                return 0;
            }

内存地址0x20000000应该保持值为5

0 个答案:

没有答案