如何指定常数数组的地址
本帖最后由 firefly2k 于 2023-9-1 15:16 编辑我要定义一个code/const的常数数组,用于查表或者类似应用。请问如何定义?
unsigned char code text _at_ 0xe000; //可以编译通过
unsigned char code text={1,2,3,4,5} _at_ 0x2000;//编译报错
问题已解决,_at_放中间
unsigned char const text _at_ 0x2000={1,2,3,4,5} ; firefly2k 发表于 2023-9-1 15:22
问题已解决,_at_放中间
unsigned char const text _at_ 0x2000={1,2,3,4,5} ;
如果需要在代码区域定义常数数组需要像下面这样定义
unsigned char const text _at_ 0xff2000={1,2,3,4,5} ;
否则即使有const关键字,也不会定义到code区
zhp 发表于 2023-9-1 15:30
如果需要在代码区域定义常数数组需要像下面这样定义
unsigned char const text _at_ 0xff2000={1,2,3,4 ...
那在定义变量的时候加上code 关键词行么我试过只加const 是不行的 本帖最后由 zhp 于 2023-9-2 14:44 编辑
cofmilk 发表于 2023-9-1 17:31
那在定义变量的时候加上code 关键词行么我试过只加const 是不行的
几种定义方法以及Keil分配地址,你可参考一下
直接使用const,编译器会分配到edata区域
使用code,则只能定义在FF:0000H~FF:FFFFH区域
使用ecode,则可定义STC32G12K128的128K区域,FE:0000H~FF:FFFFH
zhp 发表于 2023-9-2 14:40
几种定义方法以及Keil分配地址,你可参考一下
直接使用const,编译器会分配到edata区域
使用code,则只能 ...
对对 您说的是对的 直接使用const 是不会定义在code区 zhp 发表于 2023-9-2 14:40
几种定义方法以及Keil分配地址,你可参考一下
直接使用const,编译器会分配到edata区域
使用code,则只能 ...
请教一下,你是如何打开KEIL 右边那test.map 飞捷 发表于 2023-11-10 08:52
请教一下,你是如何打开KEIL 右边那test.map
map文件 编译后会生成在 工程目录/Listings/ 下面
飞捷 发表于 2023-11-10 08:52
请教一下,你是如何打开KEIL 右边那test.map
项目名称上点击鼠标右键,选择右键菜单中的“Open .\xxx.map”
zhp 发表于 2023-11-10 13:00
项目名称上点击鼠标右键,选择右键菜单中的“Open .\xxx.map”
好的,谢谢{:4_196:}
页:
[1]
2