初级会员

- 积分
- 148
- 金钱
- 148
- 注册时间
- 2017-9-18
- 在线时间
- 40 小时
|
10金钱
我使用的芯片是STM32L433,看了探索者开发板有一段使用内部ccm内存池的操作。但是平台是F4我是L4.__align(32) u8 mem3base[MEM3_MAX_SIZE] __attribute__((at(0X10000000)));
#define MEM3_MAX_SIZE 60 *1024
我查看了芯片手册。看到L4的0X10000000的地址CODE段的SRAM2。一共有16K。
于是我也照抄了代码
__align(32) uint8_t ccmbase[SRAMCCM_MAX_SIZE] __attribute__((at(0X10000000)));
SRAMCCM_MAX_SIZE 16 *1024
但是在初始化的时候:
void my_mem_init(uint8_t memx)
{
mymemset(mallco_dev.memmap[memx], 0,memtblsize[memx]*2); //data zero clearing
mymemset(mallco_dev.membase[memx], 0,memsize[memx]); //memory pool zero clearing
mallco_dev.memrdy[memx]=1; //memory management init
}
就进入硬件错误。代码应该是没什么问题,是不是还需要修改什么链接文件什么的。
LR_IROM1 0x08000000 0x00100000 { ; load region size_region
ER_IROM1 0x08000000 0x00100000 { ; load address = execution address
*.o (RESET, +First)
*(InRoot$$Sections)
.ANY (+RO)
}
RW_IRAM1 0x20000000 0x00020000 { ; RW data
.ANY (+RW +ZI)
}
}
-------------------------------------------------------------------------------------------------这是F4 探索者的TSET.sct文件-------------------------------------------------------
LR_IROM1 0x08000000 0x00040000 { ; load region size_region
ER_IROM1 0x08000000 0x00040000 { ; load address = execution address
*.o (RESET, +First)
*(InRoot$$Sections)
.ANY (+RO)
}
RW_IRAM1 0x20000000 0x00010000 { ; RW data
.ANY (+RW +ZI)
}
}
--------------------------------------------------------------------------------这是我L4的.sct文件----------------------------------------------------------------------------------
是什么原因导致我无法使用这段内存
|
-
|