完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
嗨,所有,我试图导入二进制数据,从外部文件,到我的固件映像在一个已知的位置,在一个自定义部分/地区。我可以导入数据从我的外部文件,没有问题。为此,我在源代码中插入以下行:asm("incbin"ScriptFile.txt");然而,我无法控制导入的数据的位置。我试图创建一个自定义区段,并将导入的数据与自定义区段相关联,但我的尝试似乎不起作用。我编辑了链接器文件来生成定制部分:MEMORY{kseg0_._mem(rx):ORIGIN=0x9D000ORIGIN=0x9D000000ORIGIN=0x7f000脚本_mem(rx)=0x7f000脚本_mem(LeNGTH=0x7FX7XXXXXXXX7F000脚本_mem(RX):ORIGIN=0x9D0X9D07f000ORIGIN=0XX01000kseg0_boot_mem:ORIGIN=0X01000ks01000kseg0 kseg0_boot_mem:ORIGIN=0X9FC0049IN=0OIGIN=0X9FC00490,LENGTH=script_mem.config_BFC02FF0: {...}然后,在我的代码中,我试图将导入的数据的位置设置为在我的自定义部分:asm("section script_.")、asm("incbin"ScriptFile.txt");然而,导入的数据没有放置在接近我在自定义部分中指定的0x9D07f000位置的任何位置。链接器文件。我无法找到任何关于如何使用“.incbin”的示例。如果有人对我可能做错什么有任何建议,他们会非常感激。预先感谢!干杯,李
|
|
相关推荐
12个回答
|
|
|
我已经解决了我的问题:asm("...script_.,"ax",@progbits");asm(".incbin"ScriptFile.txt"");我需要设置"ax"标志。不幸的是,这个解决方案会生成一个汇编器警告:...:Assembler消息:...:Warning:被引用的部分标志被弃用,使用属性insteadI wi。如果我能够消除警告,我将发布一个解决方案。需要注意的是上面的程序集行需要在源代码中的所有可执行代码之后出现。有一些.pushsection和.popsection指令可以解决这个问题,但是由于.pushsection指令不允许访问标志,所以这些指令没有用。
|
|
|
|
|
|
感谢张贴这一点,请让我们知道,如果你找到一个解决办法,以抑制警告。我确信在项目中包含二进制文件是很多用户愿意做的事情,而不必费力地处理这些奇怪的问题。让我在MCU的程序空间中嵌入显示图像。缺点是,它需要中间步骤,并且当二进制图像数据的每个字节变成5+字节的头文件时,它产生非常大的源文件。
|
|
|
|
|
|
还可以使用objcopy将二进制文件转换为可链接对象:Objcopy自动添加符号_binary_inputfilename_start、_binary_inputfilename_end和_binary_inputfilename_size,以便找到数据。要更改可以重命名节:如果要指定节属性,请在节名之后将它们作为逗号分隔的列表给出:
|
|
|
|
|
|
安达姆-伟大的技巧。谢谢您!我能够使用xc32-objcopy的香草版本成功地构建,如您的第一个命令示例所示,但是当我试图将该部分放入代码空间时失败了。构建良好,没有任何错误,但该节的内容都是0xFFS。你能看出我做错了什么吗?测试项目放在我的Dropbox上。这个论坛似乎不允许我上传文件。http://www. Doffbox…com……再次感谢。
|
|
|
|
|
|
我四处游荡,看起来我需要在命令行中添加另一个“内容”标志,使之有效。但不知道为什么。
|
|
|
|
|
|
尝试将“Read Onter”添加到节标志中。可以用“XC32 ObjDIP-H文件.O”查看对象文件的节标头。
|
|
|
|
|
|
是的,谢谢。这就是ObjDip所显示的:注意另一个东西——我看不到可生成的大小。在我的测试项目的地图文件中,我只发现:
|
|
|
|
|
|
大小是作为绝对符号生成的,因此它可能不包含在地图中。可以使用“NM”工具列出对象文件的符号表。
|
|
|
|
|
|
实际上我并不需要知道大小。我的目标是将SSL/TLS客户端证书、根证书和私有密钥(所有的PEM格式)都纳入项目中。这个预构建的Objo调用与自定义链接器脚本相结合,似乎满足了我的需要。谢谢你的建议。
|
|
|
|
|
|
我有一个非常相似的要求-在我的项目中包括一个gzip文件,如果该文件不存在,它会被写到SD卡上的一个文件中。你能否概述一下如何使用objcopy方法,或者让我看看相关的微芯片文档。这是通过Project属性完成的吗?ES,还是通过编辑链接器脚本?谢谢你的帮助。
|
|
|
|
|
|
嗨,objcopy,或者这里是andersm演示的xc32-objcopy.exeas,是一个由命令行窗口中的命令控制的独立程序。它也可以用于脚本、.bat文件或窗口中的快捷方式。在MPLLAB中,这些命令可以插入为:Pre或post step操作,在“Project Properties”,“.”,有一个复选框:“在构建之前执行这一行”,然后键入要在字段中执行的命令。有关objcopy的一般信息,可以在互联网上查找,应该有很多关于GNU二进制实用程序的信息,比如objcopy。迈西尔
|
|
|
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
473 浏览 0 评论
5793 浏览 9 评论
2334 浏览 8 评论
2224 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3530 浏览 3 评论
1121浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
1095浏览 1评论
我是Microchip 的代理商,有PIC16F1829T-I/SS 技术问题可以咨询我,微信:A-chip-Ti
872浏览 1评论
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
473浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 19:48 , Processed in 1.023037 second(s), Total 94, Slave 77 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
387