完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
你好。
我在STM8L152R8中有一个程序,我的固件大小为0xEFE1。 我想防止因为任何原因我的微控制器工作不好。所以,我想用0x83(中断陷阱)填充hex文件的其余部分(0x901E)。 在我的程序中我有下一个代码(main.c): void vFill_Trap(void) { &安培; sharpasm switch .text dcb.b 36894,$ 83;分配陷阱字节 ;全部初始化为$ 83& sharpendasm 我需要main.c文件是最后编译的。 我怎么能这样做? 我使用STVD和Cosmic。 谢谢。 #陷阱中断程序-0×83 - 充填 - 十六进制 以上来自于谷歌翻译 以下为原文 Hi. I have a program in STM8L152R8, my firmware has a size of 0xEFE1. I want to prevent that for any reason my microcontroller work bad. So, I want to fill the rest of the hex file (0x901E) with 0x83 (interrup trap). in my programm I have the next code (main.c): void vFill_Trap(void) { &sharpasm switch .text dcb.b 36894, $83 ; allocate trap bytes ; all initialized to $83 &sharpendasm } I need the main.c file be the last to compile. How I can do this? I use the STVD and Cosmic. Thanks. #trap-interrup-0x83-fill-hex |
|
相关推荐
2个回答
|
|
我不确定你真正想要做什么,但如果你只想指定编译顺序,你可以非常简单地做到这一点。编译源文件的顺序是它们在“工作区项目”文件夹中的显示顺序。按照STVD帮助手册第3.6节“在装配前订购源文件”中列出的说明进行操作。'这是它的内容:
将源文件添加到项目中(项目>将文件插入到项目中 )在“工作区”窗口中右键单击项目,然后禁用“添加已排序元素” 项目上下文菜单中的选项。将源文件拖放到正确的顺序。第一个文件在顶部汇编,最后一个在底部。在“工作区”窗口中右键单击项目,然后重新激活“添加已排序元素” 项目上下文菜单中的选项。我希望这有帮助。 以上来自于谷歌翻译 以下为原文 I'm not sure what you are really trying to do but if you just want to specify the compile order, you can do that very simply. The order in which the source files are compiled is the order in which they appear in your ''workspace project'' folder. Follow the directions outlined in the STVD help manual in section 3.6 ''Ordering source files before assembly.'' Here is what it says:
|
|
|
|
你好,
如果您的目的是使用操作码0x83(或任何其他)填充所有未使用的字节,则最好的解决方案是在链接器命令文件中使用-f选项,如下例所示 + seg .text -b 0x8080 -m 0x7F80 -f 0x83 -n .text 假设闪存大小为32k(从0x8000到0xFFFF)并且没有特殊段(标准的基本配置),上面的行将把代码从0x8080开始,并将所有未使用的字节填充到0xffff,值为0x83。 问候。 以上来自于谷歌翻译 以下为原文 Hello, if your purpose is to fill all unused bytes with the opcode 0x83 (or any other), the best solution if to use the -f option in the linker command file, as in the following example +seg .text -b 0x8080 -m 0x7F80 -f 0x83 -n .text Assuming a flash size of 32k (from 0x8000 to 0xFFFF) and no special segments (a standard, basic configuration) the line above will place your code starting at 0x8080 and fill all unused bytes up to 0xffff with the values 0x83. Regards. |
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2653 浏览 1 评论
3214 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1788 浏览 1 评论
3617 浏览 6 评论
5996 浏览 21 评论
945浏览 4评论
1318浏览 4评论
在Linux上安装Atollic TRUEStudio的步骤有哪些呢?
590浏览 3评论
使用DMA激活某些外设会以导致外设无法工作的方式生成代码是怎么回事
1308浏览 3评论
1368浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-28 20:23 , Processed in 1.206401 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号