OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2522|回复: 10

kei环境中怎么替代#pragra

[复制链接]

9

主题

33

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3467
金钱
3467
注册时间
2019-5-15
在线时间
258 小时
发表于 2019-9-9 18:18:41 | 显示全部楼层 |阅读模式
88金钱
本帖最后由 CuiDaBo 于 2019-9-10 16:22 编辑

#pragma location="LCD_region"
char lcd_buffer[8][256];
#pragma location="BG_region"
long lcd_points[8*256*8];
这段代码是IAR编译环境的下的能正常运行,移植到Keil5里面编译warning。
各位大神,keil里面有什么代码可以代替这四段代码!在线等!
下面是.icf linker文件的内容 这个在keil里面怎么表达
define symbol __ICFEDIT_region_RAM_LCD_start__ = 0x20004000;
define symbol __ICFEDIT_region_RAM_LCD_end__   = 0x20004FFF;
define symbol __ICFEDIT_region_RAM_BG_start__  = 0x22080000;
define symbol __ICFEDIT_region_RAM_BG_end__    = 0x2208FFFF;

define region LCD_region = mem:[from __ICFEDIT_region_RAM_LCD_start__   to __ICFEDIT_region_RAM_LCD_end__];
define region BG_region = mem:[from __ICFEDIT_region_RAM_BG_start__   to __ICFEDIT_region_RAM_BG_end__];



最佳答案

查看完整内容[请看2#楼]

查了很多资料,问题已经完美解决。下面两行代码完美替换 char lcd_buffer[8][256]__attribute__((at(0x20004000))); long lcd_points[8*256*8]__attribute__((at(0x22080000)));
梦想!是个神奇的东西!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

9

主题

33

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3467
金钱
3467
注册时间
2019-5-15
在线时间
258 小时
 楼主| 发表于 2019-9-9 18:18:42 | 显示全部楼层
查了很多资料,问题已经完美解决。下面两行代码完美替换
char lcd_buffer[8][256]__attribute__((at(0x20004000)));

long lcd_points[8*256*8]__attribute__((at(0x22080000)));
梦想!是个神奇的东西!
回复

使用道具 举报

7

主题

175

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1327
金钱
1327
注册时间
2019-7-11
在线时间
165 小时
发表于 2019-9-10 08:33:27 | 显示全部楼层
警告写的什么啊
回复

使用道具 举报

9

主题

33

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3467
金钱
3467
注册时间
2019-5-15
在线时间
258 小时
 楼主| 发表于 2019-9-10 12:13:19 | 显示全部楼层
没人回答吗
回复

使用道具 举报

9

主题

33

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3467
金钱
3467
注册时间
2019-5-15
在线时间
258 小时
 楼主| 发表于 2019-9-10 12:56:33 | 显示全部楼层

gui\LCD\lcd.c(18): warning:  #161-D: unrecognized #pragma
梦想!是个神奇的东西!
回复

使用道具 举报

7

主题

175

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1327
金钱
1327
注册时间
2019-7-11
在线时间
165 小时
发表于 2019-9-10 15:52:56 | 显示全部楼层
CuiDaBo 发表于 2019-9-10 12:56
gui\LCD\lcd.c(18): warning:  #161-D: unrecognized #pragma

编译器不认识这句,你应该要改写成符合Keil的#pragma
世界和平
回复

使用道具 举报

7

主题

175

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1327
金钱
1327
注册时间
2019-7-11
在线时间
165 小时
发表于 2019-9-10 15:56:09 | 显示全部楼层
CuiDaBo 发表于 2019-9-10 12:56
gui\LCD\lcd.c(18): warning:  #161-D: unrecognized #pragma

keil里面应该也有和编译相关的设置,调成跟你的IAR设置相同应该可以解决问题
但是可能没办法调成相同的
世界和平
回复

使用道具 举报

7

主题

175

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1327
金钱
1327
注册时间
2019-7-11
在线时间
165 小时
发表于 2019-9-10 16:16:44 | 显示全部楼层
世界和平
回复

使用道具 举报

7

主题

175

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1327
金钱
1327
注册时间
2019-7-11
在线时间
165 小时
发表于 2019-9-10 16:28:01 | 显示全部楼层
看了一圈,这个代码的意思应该就是这两个数组在内存中的位置需要固定
Keil中有个at可以写绝对地址
char lcd_buffer[8][256] _at_ 0x8000;
0x8000只是个例子,就是你的"LCD_region"代表的地址值
虽然不一定立竿见影,但是方向应该是这个方向
加油,解决了记得分享经验
世界和平
回复

使用道具 举报

7

主题

175

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1327
金钱
1327
注册时间
2019-7-11
在线时间
165 小时
发表于 2019-9-10 16:31:39 | 显示全部楼层
世界和平
回复

使用道具 举报

9

主题

33

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3467
金钱
3467
注册时间
2019-5-15
在线时间
258 小时
 楼主| 发表于 2019-9-11 00:22:15 | 显示全部楼层
礼拜天真好 发表于 2019-9-10 16:28
看了一圈,这个代码的意思应该就是这两个数组在内存中的位置需要固定
Keil中有个at可以写绝对地址
char l ...

已经解决!
梦想!是个神奇的东西!
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-9 15:02

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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