完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
使用RAM时,有五个地址无法通过软件更改:0x102,0x12F,0x237,0x24D和0x2A9。
我使用以下测试代码; 运行测试代码时,我看到ST-Link SWIM调试器,五个地址的内存保持不变。 这也适用于memcopy或 _fctcpy( 'F') 。 我可以使用SWIM更改内容而不会出现问题(例如填充内存)。 就像这些RAM地址被阻止从软件写入。 地址并不总是相同,但主要是在相同的内存范围内。当更改链接器中RAM段的位置时,前两个地址也会移动,例如将RAM设置为0x300而不是0x100:“bad”地址0x102变为0x302。 通过更改电路板,地址也是相同的! 有时我根本看不到问题。在零页RAM(我们用于所有变量),我从未见过一个问题。 你知道这个问题可能是什么吗? 对我来说,这听起来像环境以某种方式阻止RAM进行更改,虽然我不知道RAM是如何保持阻止的。 RAM需要从RAM运行块闪存和阻止擦除例程以优化闪烁并减少能量使用。 谢谢 约翰 以上来自于谷歌翻译 以下为原文 When using the RAM there are five addresses that I cannot change by software: 0x102, 0x12F, 0x237, 0x24D and 0x2A9. I am using the following test code; When running the test code I see with the ST-Link SWIM debugger that the memory for the five addresses stays unchanged. This is also valid for memcopy or the _fctcpy('F') . I can change the contents with the SWIM without a problem (for example a fill memory). It is like these RAM addresses are blocked for writing from software. The addresses are not always the same, but mostly it is in the same memory range. When changing the location of the RAM segment in the linker the first two addresses move also, for example setting RAM to 0x300 instead of 0x100: the “badâ€� address 0x102 become 0x302. Also by changing the board the addresses were identical! Sometimes I do not see the issue at all. On the zero page RAM (that we use for all variables), I have never seen an issue. Do you have any idea what this issue might be? For me it sounds like the environment is somehow blocking RAM for changing, although I don’t see how RAM can stay blocked. The RAM is required to run block flashing and block erasing routines from RAM to optimize the flashing and reduce the energy usage. Thanks John |
|
相关推荐
3个回答
|
|
发布编译器为该循环生成的汇编程序(列出文件或反汇编窗口)
以上来自于谷歌翻译 以下为原文 post the assembler that your compiler generated for that loop (listing file or disassembly window) |
|
|
|
卢卡你好,
感谢您的回复。 我不怀疑程序集,而我在同一地址看到标准_fctcpy('F')和memcpy的问题。 约翰 以上来自于谷歌翻译 以下为原文 Hello Luca, Thanks for your reply. I don't suspect the assembly, while I see the same issue with the standard _fctcpy('F') and memcpy at the same addresses. John |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2567 浏览 1 评论
3191 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1761 浏览 1 评论
3586 浏览 6 评论
5962 浏览 21 评论
920浏览 4评论
1296浏览 4评论
在Linux上安装Atollic TRUEStudio的步骤有哪些呢?
560浏览 3评论
使用DMA激活某些外设会以导致外设无法工作的方式生成代码是怎么回事
1284浏览 3评论
1334浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-3 05:03 , Processed in 1.038974 second(s), Total 84, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号