打印

FLASH分区用来存储数据,是不是修改linker.cmd就可以?

[复制链接]
1434|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
shiqiaocanxue|  楼主 | 2016-8-3 15:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
由于TM4C的EEPROM存储空间太小,因此做实验需要记录的数据想要存到内置的FLASH存储器中。看了几个大神的帖子,存储空间的分配是由bootloader完成的,而且和编译器也有关?如果我使用CCS编译和链接,是修改工程中include文件夹/bootloader文件夹下的bl_link_ccs.cmd,还是工程目录下lm4f2305hqr.cmd呢?这两个文件各是什么作用呢?

相关帖子

沙发
shiqiaocanxue|  楼主 | 2016-8-3 20:52 | 只看该作者
FLASH可以直接拿来存数据吗?我试着是可以的,但是会不会保证存储程序的区域不被覆盖呢?

使用特权

评论回复
板凳
dirtwillfly| | 2016-8-4 10:16 | 只看该作者
可以存数据的。一般修改工程目录下的lm4f2305hqr.cmd

使用特权

评论回复
地板
shiqiaocanxue|  楼主 | 2016-8-4 13:29 | 只看该作者
dirtwillfly 发表于 2016-8-4 10:16
可以存数据的。一般修改工程目录下的lm4f2305hqr.cmd

我不对这个文件修改,直接往Flash存数据好像也可以。。。

使用特权

评论回复
5
dirtwillfly| | 2016-8-4 13:55 | 只看该作者
shiqiaocanxue 发表于 2016-8-4 13:29
我不对这个文件修改,直接往Flash存数据好像也可以。。。

是的。只要没被程序占用的flash都没问题。
如果程序用到了,很可能会跑飞。

使用特权

评论回复
6
dirtwillfly| | 2016-8-4 13:56 | 只看该作者
你也可以直接定义一个大数组

使用特权

评论回复
7
shiqiaocanxue|  楼主 | 2016-8-4 15:08 | 只看该作者
dirtwillfly 发表于 2016-8-4 13:56
你也可以直接定义一个大数组

您的意思是直接定义大数组,然后整块存到Flash吗?和一个字一个字地存有什么改进呢?

使用特权

评论回复
8
dirtwillfly| | 2016-8-4 18:39 | 只看该作者
shiqiaocanxue 发表于 2016-8-4 15:08
您的意思是直接定义大数组,然后整块存到Flash吗?和一个字一个字地存有什么改进呢? ...

直接定义一个存储在flash上的数组,编译的时候,编译器就不会分配程序在这一部分flash存储空间了

使用特权

评论回复
9
shiqiaocanxue|  楼主 | 2016-8-4 21:37 | 只看该作者
dirtwillfly 发表于 2016-8-4 18:39
直接定义一个存储在flash上的数组,编译的时候,编译器就不会分配程序在这一部分flash存储空间了 ...

在哪儿定义呢,Bootloader里吗?使用CCS编译器如何定义呢?

使用特权

评论回复
10
xyz549040622| | 2016-8-4 22:07 | 只看该作者
shiqiaocanxue 发表于 2016-8-4 21:37
在哪儿定义呢,Bootloader里吗?使用CCS编译器如何定义呢?

上面灰版已经说了,在.cmd文件中修改地址。你可以把数据放在eeprom中,这个空间一般足够了。想要放在flash空间的话,只要不特殊定义,会自动放在flash中的,至于空间的分配,你交给编译器就好了,你只管定义大小就好啦。
@dirtwillfly 是不是可以这么理解呢

使用特权

评论回复
11
mmbs| | 2016-8-5 22:32 | 只看该作者
cmd里面有分区的。

使用特权

评论回复
12
mmbs| | 2016-8-5 22:34 | 只看该作者
不进行大空间的分布一般没有问题。

使用特权

评论回复
13
mmbs| | 2016-8-7 21:52 | 只看该作者
直接修改cmd?

使用特权

评论回复
14
mmbs| | 2016-8-7 21:53 | 只看该作者
内部空间修改会造成芯片死机了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

41

帖子

0

粉丝