OpenEdv-开源电子网

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

怎么让keil编译的时候把数组放在指定的flash区

[复制链接]

6

主题

46

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
305
金钱
305
注册时间
2014-3-24
在线时间
39 小时
发表于 2016-3-26 22:22:18 | 显示全部楼层 |阅读模式
20金钱
这个可能有点难度,一般定义的数组都是编译器自动分配地址的。
但是如果现在定义了一个数组,程序在0x8000000开头的flash区,占用10K,数组1k,分配到0x8001000的地方(只是假设),而且这个非配过程是再编译的时候自动就完成的,不需要再程序里面对flash进行写操作,下载的时候直接自动下载。
中间可能会涉及到keil的配置问题,比如下图
QQ截图20160326221641.jpg
打开后是这样的
QQ截图20160326221709.jpg
完了就不知道怎么弄了,有没有高手指点下呢?

最佳答案

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

自己发的帖子,自己来解决好了 unsigned char Smile[153600] __attribute__((at(0x08010000))) = {此处写数据}; const unsigned char gImage_Cry[153600] __attribute__((at(0x08035800))) = {此处写数据}; 记得最后有分号,然后再头文件声明一下就可以在main函数里调用了 图1 图2 图3 问题解决 前面把问题想复杂了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

46

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
305
金钱
305
注册时间
2014-3-24
在线时间
39 小时
 楼主| 发表于 2016-3-26 22:22:19 | 显示全部楼层
自己发的帖子,自己来解决好了

unsigned char Smile[153600] __attribute__((at(0x08010000))) = {此处写数据};
const unsigned char gImage_Cry[153600] __attribute__((at(0x08035800))) = {此处写数据};

记得最后有分号,然后再头文件声明一下就可以在main函数里调用了

图1
b3119313b07eca80f782dcda942397dda144830c.jpg
图2
dc54564e9258d1097db44e8fd458ccbf6c814dbc.jpg
图3
55e736d12f2eb938312e9bcfd0628535e5dd6f48.jpg
问题解决

前面把问题想复杂了
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-19 22:16

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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