完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好。
我正在使用SPC5Studio和Hightec Compiler开发Bolero微控制器(SPC560D40L3)。 我有一个与变量有关的问题,它位于RAM中。 我有一组全局变量,我需要将它放在RAM中的固定地址。 我怎样才能做到这一点? 将变量声明为指针并用已知值初始化它是否足够? 是否有可用于强制变量位于给定地址的ant属性? 我是否需要更改链接描述文件? 谢谢。 #address #variables #ram 以上来自于谷歌翻译 以下为原文 Hello everyone. I�m working on a Bolero microcontroller (SPC560D40L3) using SPC5Studio and Hightec Compiler. I have a question related to variables to be located in RAM. I have a set of global variables, which I need to place in RAM, at fixed addresses. How can I do that? Is it sufficient to declare variable as pointers and initialize them with known values? Are there ant attributes that can be used to force variables to be located at given addresses? Do I need to make changes to the linker script? Thank you. #address #variables #ram |
|
相关推荐
6个回答
|
|
你好Alem,
对的,这是可能的 1)将链接器文件更改为附件(application.ld.backupram) 每次生成后,链接器文件都将被覆盖 2)在前面的变量声明中使用源代码中的代码部分。 最好的祝福 二万 以上来自于谷歌翻译 以下为原文 Hello Alem , yes , it is possible 1) Change the linker file as the attachement (application.ld.backupram) After each generation , the linker file will be overwritten
2) After used the code section in your source code in front Variable declaration.
Best regards Erwan |
|
|
|
你好,Erwan,
非常感谢你的回复。 据我所知,查看修改过的链接描述文件,你创建了一个从地址0x40002800开始的ram部分,长度为2k。 第一个问题:让我们考虑以下代码片段: ''variable_a''将被放置在0x40002800,对吗? ''variable_b''在0x40002802,因为16位对齐od''stanbyram''部分,对吧? 第二个问题:如何终止该部分?假设我想在''variable_b''之后声明一个变量,它不会放在''stanbyram''部分中。 第三个问题:为什么节长度为2k?这样我们是不是错过了4k的RAM?在标准的application.ld中,RAM部分的长度为16k(在这种情况下,只有12k)。 谢谢您的帮助。 以上来自于谷歌翻译 以下为原文 Hello Erwan, many thanks for your reply. As far as I understand, looking at the modified linker script, you' ve created a ram section starting at address 0x40002800, which length is 2k. First question: let's consider the following code fragment:
''variable_a'' would be placed at 0x40002800, right? And ''variable_b'' at 0x40002802, because of the 16 bits alignment od ''stanbyram'' section, right? Second question: how do I terminate the section? Suppose I want to declare a variable after ''variable_b'', which is not placed in the ''stanbyram'' section. Third question: why is the section length 2k? Aren't we missing 4k of RAM, this way? In the standard application.ld , the RAM section has 16k length (in this case, only 12k). Thank you for your assistance. |
|
|
|
好的,我已经完成了一些链接器脚本的实验。
我可以设法将变量放在内存部分中。 我不明白的是,当我尝试访问固定地址变量时,微控制器崩溃的原因。 如果我声明一个变量,如: 我尝试访问它,微控制器崩溃了。 如果我只删除__attribute__并将变量声明为普通变量,那么一切正常。 任何想法? 谢谢。 以上来自于谷歌翻译 以下为原文 OK, I've done some experimenting with the linker script. I can manage to place variables within memory sections. What I don't understand is why the microcontroller crashes whnever I try to access one the fixed address variables. If I declare a variable like:
and I try to access it, the microcontroller crashes. If I just remove the __attribute__ and the variable is declared as a normal variable, everything is OK. Any idea? Thank you. |
|
|
|
你好Alem,
是的,它是16K的SRAM ..您可以调整application.ld以匹配您的SRAM 这是一个基于STANDBY WAKEUP Interrupt的旧应用程序。 我身边没有问题 变量擅长 (Cf截图) 最好的祝福 二万 以上来自于谷歌翻译 以下为原文 Hello Alem , yes it is well 16K of SRAM .. you can adjust application.ld to match with your SRAM it was a old application based on STANDBY WAKEUP Interrupt. i have no problem in my side
the variable is well at (Cf screenshot) Best regards Erwan |
|
|
|
你好,Erwan,
感谢您的回复。 好吧,我不明白我可以调整''backupram''大小。 关于微控制器崩溃,没有什么不同于你,我仍然遇到了问题。 它可能与编译器设置有关吗? (请参阅下面的设置)。 谢谢。 以上来自于谷歌翻译 以下为原文 Hello Erwan, thanks for your reply. Ok, I unnderstand I can adjust the ''backupram'' size. Regarding the microcontroller crash, do nothing different than you and I still got the problem. Could it be related to compiler settings? (please, see my settings below). Thank you. |
|
|
|
你好Alem,
也许这一代将自动替换你的application.ld 我们将提供一种在SPC5Studio 5.1.0上创建自己的user.ld的方法 或者你的申请太大了。 最好的祝福 二万 以上来自于谷歌翻译 以下为原文 Hello Alem , Maybe the generation will replace automatically your application.ld we will deliver a a way to create your own user.ld on SPC5Studio 5.1.0 or your application is too big. Best regards Erwan |
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2730 浏览 1 评论
3239 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1808 浏览 1 评论
3647 浏览 6 评论
6035 浏览 21 评论
1338浏览 4评论
198浏览 3评论
对H747I-DISCO写程序时将CN2的st-link复用为usart1,再次烧录时无法检测到stlink怎么解决?
350浏览 2评论
STM32G474RE芯片只是串口发个数据就发烫严重是怎么回事?
442浏览 2评论
STM32处理增量式编码器Z信号如何判断中断是正转的还是反向转的?
273浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 01:35 , Processed in 1.102692 second(s), Total 87, Slave 71 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号