找回密码
 立即注册
查看: 749|回复: 12

如何指定常数数组的地址

[复制链接]
  • TA的每日心情
    开心
    2024-4-15 13:14
  • 签到天数: 1 天

    [LV.1]初来乍到

    10

    主题

    37

    回帖

    183

    积分

    注册会员

    积分
    183
    发表于 2023-9-1 15:10:46 | 显示全部楼层 |阅读模式
    本帖最后由 firefly2k 于 2023-9-1 15:16 编辑

    我要定义一个code/const的常数数组,用于查表或者类似应用。请问如何定义?




    unsigned char code text[5] _at_ 0xe000;                    //可以编译通过
    unsigned char code text[5]={1,2,3,4,5} _at_ 0x2000;  //编译报错


    回复 送花

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-15 13:14
  • 签到天数: 1 天

    [LV.1]初来乍到

    10

    主题

    37

    回帖

    183

    积分

    注册会员

    积分
    183
     楼主| 发表于 2023-9-1 15:22:21 | 显示全部楼层
    问题已解决,_at_放中间
    unsigned char const text[5] _at_ 0x2000={1,2,3,4,5} ;

    点评

    zhp
    如果需要在代码区域定义常数数组需要像下面这样定义 unsigned char const text[5] _at_ 0xff2000={1,2,3,4,5} ;  详情 回复 发表于 2023-9-1 15:30
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    7 天前
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    16

    主题

    711

    回帖

    2528

    积分

    超级版主

    积分
    2528
    发表于 2023-9-1 15:30:05 | 显示全部楼层
    firefly2k 发表于 2023-9-1 15:22
    问题已解决,_at_放中间
    unsigned char const text[5] _at_ 0x2000={1,2,3,4,5} ;

    如果需要在代码区域定义常数数组需要像下面这样定义
    unsigned char const text[5] _at_ 0xff2000={1,2,3,4,5} ;

    否则即使有const关键字,也不会定义到code区
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    6 天前
  • 签到天数: 134 天

    [LV.7]常住居民III

    20

    主题

    1039

    回帖

    2459

    积分

    金牌会员

    积分
    2459
    发表于 2023-9-1 17:31:31 | 显示全部楼层
    zhp 发表于 2023-9-1 15:30
    如果需要在代码区域定义常数数组需要像下面这样定义
    unsigned char const text[5] _at_ 0xff2000={1,2,3,4 ...

    那在定义变量的时候加上code 关键词行么  我试过只加const 是不行的

    点评

    zhp
    几种定义方法以及Keil分配地址,你可参考一下  详情 回复 发表于 2023-9-2 14:40
    参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
    技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    7 天前
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    16

    主题

    711

    回帖

    2528

    积分

    超级版主

    积分
    2528
    发表于 2023-9-2 14:40:13 | 显示全部楼层
    本帖最后由 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

    截图202309021439086635.jpg
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    6 天前
  • 签到天数: 134 天

    [LV.7]常住居民III

    20

    主题

    1039

    回帖

    2459

    积分

    金牌会员

    积分
    2459
    发表于 2023-9-2 14:51:07 | 显示全部楼层
    zhp 发表于 2023-9-2 14:40
    几种定义方法以及Keil分配地址,你可参考一下
    直接使用const,编译器会分配到edata区域
    使用code,则只能 ...

    对对 您说的是对的 直接使用const 是不会定义在code区
    参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
    技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 23:19
  • 签到天数: 143 天

    [LV.7]常住居民III

    34

    主题

    325

    回帖

    613

    积分

    高级会员

    积分
    613
    发表于 2023-11-10 08:52:20 | 显示全部楼层
    zhp 发表于 2023-9-2 14:40
    几种定义方法以及Keil分配地址,你可参考一下
    直接使用const,编译器会分配到edata区域
    使用code,则只能 ...

    请教一下,你是如何打开KEIL 右边那test.map

    点评

    zhp
    项目名称上点击鼠标右键,选择右键菜单中的“Open .\xxx.map” [attachimg]26399[/attachimg] [attachimg]26400[/attachimg]  详情 回复 发表于 2023-11-10 13:00
    map文件 编译后会生成在 工程目录/Listings/ 下面  详情 回复 发表于 2023-11-10 11:06
    纸上得到终觉浅,绝知此事要躬行。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 08:35
  • 签到天数: 143 天

    [LV.7]常住居民III

    29

    主题

    558

    回帖

    2120

    积分

    荣誉版主

    积分
    2120
    发表于 2023-11-10 11:06:29 | 显示全部楼层
    飞捷 发表于 2023-11-10 08:52
    请教一下,你是如何打开KEIL 右边那test.map

    map文件 编译后会生成在 工程目录/Listings/ 下面
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    7 天前
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    16

    主题

    711

    回帖

    2528

    积分

    超级版主

    积分
    2528
    发表于 2023-11-10 13:00:52 | 显示全部楼层
    飞捷 发表于 2023-11-10 08:52
    请教一下,你是如何打开KEIL 右边那test.map



    项目名称上点击鼠标右键,选择右键菜单中的“Open .\xxx.map”
    截图202311101259153594.jpg


    截图202311101259308403.jpg

    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 23:19
  • 签到天数: 143 天

    [LV.7]常住居民III

    34

    主题

    325

    回帖

    613

    积分

    高级会员

    积分
    613
    发表于 2023-11-11 09:13:15 | 显示全部楼层
    zhp 发表于 2023-11-10 13:00
    项目名称上点击鼠标右键,选择右键菜单中的“Open .\xxx.map”

    好的,谢谢
    纸上得到终觉浅,绝知此事要躬行。
    回复 支持 反对 送花

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-5-6 00:13 , Processed in 0.097430 second(s), 69 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表