主题中讨论的其他部件:MSP430F6779A, MSP-FET, MSP-FET430UIF
大家好,
我使用 的是MSP430F6779A 处理器我想启动加载程序,以便使用串行端口将代码转储到设备中。 如何为 MSP430F6779A创建引导加载程序,是否有任何库参考或如何开发自定义引导加载程序。 请尽快回复。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
大家好,
我使用 的是MSP430F6779A 处理器我想启动加载程序,以便使用串行端口将代码转储到设备中。 如何为 MSP430F6779A创建引导加载程序,是否有任何库参考或如何开发自定义引导加载程序。 请尽快回复。
您好,Sumit:
您使用的是MSP430F6779A还是MSP430F425? 建议不要将MSP430F425用于新设计。
TI提供 的MSPBoot 显示了如何在主存储器中创建启动加载器以及如何通过串行接口对器件进行编程的示例。 但是,这仅适用于TI的小型内存型号MSP430器件(<65KB)。 我们目前正在开发一个大内存模型版本,该版本将更适用于MSP430F6779A ,但它将在几个月后才发布。 首先,我将研究MSPBoot并将其用作引导装载程序的基础。 然后,在您开发代码时,我可以帮助您解决在尝试移植到大型内存模型设备时可能遇到的任何障碍。
此致,
Caleb Overbay
您好,Katie:
因为我已经更新了我正在使用MSP BSL 库,并且我已经按照设备的要求对代码进行了处理,但是当我编译代码时,在链接为时遇到错误
致命错误[E72]:必须在句段定义选项(-Z,-b或-P)中定义句段BSL430_version_vendor
我已经在论坛中阅读过有人说,出现此错误的原因可能是为较旧版本的IDE开发了代码,可能是我必须在链接程序文件中进行一些更改才能解决此问题。
我正在使用IAR 6.10 我想知道如何解决此错误,因为我的IDE.......please帮助我...
谢谢…
Sumit。
您好,Sumit:
BSL需要自定义的链接程序文件-您应该检查项目是否设置为使用此文件。 您可以在MSP430BSL_1_00_12_00\5xx_6xx_BSL_Source\MSP430F552x_TA_UART\config lnk430_BSL_Area_RAM_2400-33FF.xcl中找到链接器文件示例。
请注意,此链接程序文件包括:
-Z (const) BSL430_version_vendor=1010-1010</s>1010
我认为这应该可以解决您的错误消息。
您需要为 您的特定设备制作此链接器文件的版本-只需复制上面提到的示例文件并将其与项目一起放在您的目录中。 由于BSL区域位于所有这些部分的相同地址,我认为您只需要修改RAM的地址,以匹配设备的数据表RAM地址。 RAM在行中指定:
-Z (data) DATA16_I,DATA16_Z,DATA16_N,DATA16_heap+_DATA16_heap_size=2400-33FF
只需更改行末尾的地址 ,即可反映设备数据表中的RAM。
您可能还需要重命名链接程序文件,因为该名称当前反映的RAM地址为2400-3FFF,与设备上的不同。 最后,您需要设置“项目”>“选项”>“链接器”以使用此文件。 在链接程序配置文件下的Config (配置)选项卡上,选中"override default"(覆盖默认值)框,然后在项目目录中包含自定义链接程序命令文件的路径。 您可以使用$PROJ_DIR$\开始路径,然后根据需要提供与项目文件相关的路径。
如果这有助于解决您的问题,请告诉我。
此致,
Katie
您好,Katie:
感谢您对我的支持, 当然,它通过遵循您建议的答案帮助我解决了我的问题。我要补充的一点是,除了将特定设备的链接器文件版本更改为之外,RAM地址也是 对于设备,我们还必须根据设备更改代码段的地址。
<
-Z (data) code_i
-P (code) code,code_ID=1万-8BFFF
>
再次感谢您对我的支持,,,,,,,
此致,
Sumit
您好,Katie:
是的,如果我使用 地址1010-17EF作为代码 ,则会抛出一条错误消息
ERROR[E104]:未能将所有句段适应指定范围。 在段代码中发现问题。 无法将39个块(总计0x7ba字节)放入
0x79a字节的内存。 处理段放置命令"-P (code) code,code_ID=1010-17EF"时出现问题,其中为
放置时,可用内存范围为“code:1056-17ef”
但如果我使用地址位置1万-8BFFF,则它正在成功编译,没有任何错误
//******************************************************************************************* //// 用于MSP430的IAR嵌入式工作台的XLink命令文件。 //// 此文件描述了BSL内存位置和RAM //********************************************************************************************************* //------------------------------------------------ //堆栈和堆大小。 //------------------------------------------------ //不注释命令行使用 //-D堆栈大小=80 //-D DATA16_heap_size=80 //-D_DATA20_heap_size=80 //----- //定义CPU。 //------------------------------------------------ -cmsp430 //------------------ //读写存储器。 //------------------------------------------------ -Z (数据) DATA16_I,DATA16_Z,DATA16_N,DATA16_heap+_DATA16_heap_size=01C00-09BFF -Z (数据) DATA20_I,CSA20_Z,DATA20_N,DATA20_TA20_STACK_SIZE -Z (数据)-Z,C20_I,CSTUAM_I,C20_I,CAMEAD_Z (数据)堆栈---(数据)------------------------------------------------------------------- //只读存储器 //-------------------------------------------- //------------------------------------------------ //版本信息 -Z (const) BSL430_VERSION=1010-1010 -Z1010 -Z (const) BSL430_VERSION_CI=1011-1011 -Z1011 -Z (const) BSL430_VERSION_API=1012-1012 -Z1012 -Z (const) BSL430_VERSION_PI=1013-1013 //1013 // BSL-Z (const) VSIG/ BSLF0包含BSL17F0 // BSL解锁功能矢量 // BSL解锁签名1 // BSL解锁签名2. -Z(const)JTAGLOCK键=0x17FC-17FF //如果它包含: // 0x0000 0x0000或 // 0xFFFF 0xff,则JTAG将被解锁,否则JTAG将被锁定 //------------------ //代码 -Z (代码) CSTART,ISR_CODE=1010-17EF //------------------ //常量数据 -Z (const) DATA16_C,DATA16_ID,DIFUNCT =1010-17EF //------------------ //信息存储 器/////-Z(const)info=1800-19FF //-Z(const)INFOA=1980-19FF //-Z(const)INFOB=1900-197F //-Z(const)INFOC=1880-18FF //-Z(const)INFOD=1800-187F //----- //所有内存0- 0xFFFFF //---------------------------------- //------------------ // bSL内存 //-------------------------------------------- -z(code) zarEA=1000-100F -Z(code) ZAREA_code=1010-17FF -Z(code) BSL0=1010-11FF -Z(code) BSL1=1200-13FF -Z(code) BSL2=1400-15FF -Z(code) BSL3=1600-17EF //-------- //代码 -Z (data) code_i -P (code) code,code_ID=1010-17EF //1万-8BFFF如果我使用这个地址没有问题,但我不知道它怎么会是一个普通的APP PLZZ解释 //-P (代码)代码=1070-17AB //-P (代码) VCORE=17AC-17EF //------------ //常量数据 -Z (const) DATA20_C,DATA20_ID=1010-17EF //------------------------------------------------ //中断向量 //-------------------------------------------- -Z (code) INTVEC=FF80-FFFF -Z (code) reset=FFFE-FFFF //地址已从FFAE-FAF修改为FFFE-FFFF。 //------------------------------------------------ //结尾 //--------------------------------------------
这些是我在代码中所做的修改,请浏览并帮助我解决问题和我的错误,
感谢您的支持;;;;;;;
此致,
Sumit
您好,Katie:
再次感谢,我已通过使用project >选项> c/c++编译器>优化我的代码来解决该错误,方法是将级别设置为中等
但是现在,当我发送RX密码命令以解锁设备时,当标头和数据包大小超过错误时,它会作出响应
缓冲区,但我将缓冲区大小保留为260。如果我发送 的同步字符为0x80,则它也会提供与 数据包大小相同的响应
超出缓冲区。我没有得到正在发生的情况,如何解锁我的启动加载程序,请帮助我如何启动启动启动加载程序。
谢谢,此致,
Sumit
您好,Katie:
感谢您的持续支持和帮助
我正在将我的PC用作主机,它有Window 32,因此问题是,当我尝试运行BSL脚本程序.exe文件时,下载BSL脚本程序后,由于它不是有效的WIN32应用程序,因此出现错误。
WIN32是否有任何其他版本的BSL脚本可用,如果有,请共享下载链接,或者提供 任何解决方案来解决此问题。我尝试解决此问题,但succeed..please帮助不是。>>>>>
谢谢,此致,
Sumit
您好,Katie:
我尝试了MSP BSL Download文件夹中提供的所有以前版本,但每个版本都有相同的问题。
BLS复制器和BSLDEMO2都工作正常...但是BLS脚本程序出现问题。
我认为此应用程序是为64位Windows操作系统开发的。
我无法使用docklight测试引导加载程序,如果我正在使用docklight发送命令,为什么它给出错误响应。
谢谢,此致,
Sumit
您好,Katie:
我从您提供的链接下载了软件,但再次出现相同的错误。下面是我用于下载软件包的链接。
| MSP430-MSP432 BSL编程器包(BSL脚本) | 9812K |
http://software-dl.ti.com/msp430/msp430_public_sw/mcu/msp430/MSPBSL/1_00_00_00/index_FDS.html
您好,Fatma,
现在 ,我正在Windows中使用BSL脚本程序继续我的BSL应用程序,并且BSL脚本程序运行正常。 但现在的问题是,当我在BSL脚本中提供脚本文件名时,它将每个脚本的错误指定为Unknown Ack value!..can请帮助我如何解决此错误或为什么会出现此错误。我正在附加日志 文件和脚本file..e2e.ti.com/.../23.txt
e2e.ti.com/.../23_5F00_2017May29_5F00_103040.log</s>10.304万
谢谢,此致,
Sumit
您好,Fatma,
我忘了提到我正在使用MSP-FET430UIF与BSL通信,我发现它没有与BSL通信,因为如果我正在从设备断开MSP-FET430UIF,它也会给出相同的错误,即“未知的ack value”..... 在从USB断开调试器之后,只有它给出了一些不同的错误,例如“无法找到指定的文件”
如果我已经为我的设备开发了自定义引导加载程序,现在我正在使用Windows 10 64位PC作为主机,那么是否需要下载Visual Studio 2013和Boost and hidapi软件包来开始通信。
您好,Sumit:
MSP-FET430UIF (较旧的FET工具,为灰色)不支持BSL。 MSP-FET (新FET工具,黑色)支持BSL。 请参阅MSP调试器指南 www.ti.com/lit/pdf/slau647 表1,其中显示了调试探测器的功能。
您是否可以访问MSP-FET工具?
此致,
Katie
您好,Katie:
感谢您再次回复,实际上我没有 MSP-FET,这就是为什么我想知道我现在可以做些什么, 我已经使用docklight进行了测试,给出了一些命令,如mass erase Rx password和BSL version命令,并且它给出了正确的响应,但现在我不知道如何使用串行端口转储我的应用程序代码。
还有一点,在将BSL应用程序加载到我的设备后,我给出了硬件重置顺序来调用bootloader,然后只是它对任何命令做出响应,或者它不响应任何命令,是正确的方式还是不正确的方式...
谢谢,此致,
Sumit
您好,Katie:
再次感谢,您建议使用串行端口,而不是MSP-FET430UIF,您的BSL在使用串行端口时工作正常。 它对错误密码和默认密码进行响应,但对于应用程序代码,它给出错误"文件类型对BSL脚本无效!" 我正在附加脚本文件,请检查它在哪里出错。
e2e.ti.com/.../8461.23.txte2e.ti.com/.../23_5F00_2017Jun06_5F00_120910.loge2e.ti.com/.../emeter_2D00_6779A.txt</s>12.091万 6779
谢谢,此致,
Sumit
您好,Sumit:
进入BSL的标准方式是通过您提到的重置和测试序列。 还有一些其他选项-您可以使用BSL用户指南 www.ti.com/.../slau319中的3.8 (从外部应用程序启动BSL)一节所述的顺序,从主应用程序代码跳转到BSL。 您可以让您的应用程序在任何预定义的条件集之后执行此跳转,只需将其包含在您的应用程序代码中。
此外,由于您在F6779A中使用自定义引导加载程序,因此您可以根据需要修改引导加载程序代码以输入-例如,启动时某个引脚保持低/高,启动时某个特定值位于闪存中的特定地址, 空白复位矢量等
您有什么特别的想法吗?
此致,
Katie