嗨,
我想通过J-Link刻录一个辅助引导加载程序到OTP。我想通过UART将应用程序代码从主控制器复制到RAM。我想配置GPIO引脚P1_0为Tx, P1_1为引导加载器的Rx。从哪里我可以下载辅助引导加载程序和我如何配置Tx和Rx引脚?
嗨,维克,
二级引导装载程序位于SDK工具文件夹中,你需要定义SUPPORT_AN_B_001为了启用二级引导装载程序特性,然后通过它通过禁用spi和i2c接口UART_SUPPORTED SPI_FLASH_SUPPORTED EEPROM_FLASH_SUPPORTED和定义。这样做之后,您必须通过更改UART_GPIO_PORT、UART_TX_PIN和UART_RX_PIN的定义,将UART引脚更改为您想要的引脚。以上操作应该没问题,您可以在将fw刻录到OTP之前进行测试,方法是将其直接运行到sysram并下载一个fw到UART。
由于MT_dialog
嗨MT_dialog,
谢谢您的快速回复。我已经按照你上次回复的步骤做了。为了测试,我已经下载了使用Jlink的辅助引导加载程序固件到sysram,我已经通过USB连接到Uart转换器的Uart线到PC。但是我在uart线中看不到任何东西。一旦引导加载程序固件成功加载,我预计BLE模块将连续发送“0x02”。
我已经下载了SDKhttps://support.dialog-semiconductor.com/connectivity/product/da14580?qt..。,并做了以下修改并更改了UART_GPIO_PORT、UART_TX_PIN和UART_RX_PIN宏。请检查它。
将第24行从#undef UART_SUPPORTED改为#define UART_SUPPORTED从#定义SPI_FLASH_SUPPORTED到和#undef SPI_FLASH_SUPPORTED行号27第37行,从#undef SUPPORT_AN_B_001到#define SUPPORT_AN_B_001
我已经提到的配置是有效的,如果你不看到0 x02这意味着设备跟踪RX销,你没有设置高的状态,引导装载程序的主要功能在UART支持部分如果有条件(GPIO_GetPinStatus (UART_GPIO_PORT,在执行扫描过程之前检查RX引脚。
我在Rx引脚电压检查,我得到3.3伏。但我仍无法看到0×02。
如果我运行在调试模式下的代码,它工作正常。我能看到在终端0×02,我能够使用SmartSnippets工具来编程其他样本项目。我按照步骤在阿尔卑斯山的开发套件应用说明解释了在调试模式下运行。
我怎样才能使它在发布模式下工作?
究竟你的意思运行在调试模式和发布模式下的代码?二级引导装入程序的CFG_DEVELOPMENT_DEBUG定义禁用,就在我身边八方通输出从外部UART一个0×02字节的启动运行在RAM中的项目。我不熟悉的ALPS文件。
你这边是否尝试通过P1_0作为Tx, P1_1作为Rx引导加载程序?
释放模式意味着我将使用smarsnippet工具下载.hex文件到sysRam。在这个方法中我没有得到0x02。
为了在调试模式下运行,我们在kiel中有一个选项,点击附件中显示的图标。然后我们可以逐步执行或连续运行代码。在这个方法中,我得到0X02。但是对于最终产品,我想使用hex文件。所以我想在刻录到OTP之前通过下载到sysRam来验证它。
如果您需要阿尔卑斯的文件,请发送您的电子邮件id到vivek@technosphere.in或者jasim@technosphere.in
我已经使用JTAG接口并通过智能片段测试的下载过程,事实上,我看到P10和P11的引脚无动作(我想,这是你所看到的),当下载的固件,但我使用的UART接口也试过和探讨这两个引脚和FW在正常运行,我可以假设,这与下载程序有关,而不是与.hex文件制作,在这两种情况下.hex文件是相同的,它反映在sysram但出于某种原因在下载使用智能片段从JTAG二进制当FW不运行,但同样我不认为这有什么做的固件,例如,如果你为了模拟一个OTP复制它应该加载二进制闪光正常工作以及通过UART下载固件。
我在我的harware别无选择挖掘PORT0管脚(这是使用内置的UART引导程序)。所以,我必须使用JLINK加载二次自举程序固件。如果我使用闪光灯JLINK二级引导程序hex文件,以OPT,它会正常工作?否则将面临同样的问题?
我尝试过使用Jlink将hex文件刻录到OTP中。我遵循了WI_Dialog在文章中的指示https://support.dialog-semiconductor.com/program-da14580-otp-memory和用户手册 “UM-B-083”。但我“(第一MSB)在JTAG地址0x81FEC Adddittional错误信息:FF FF FF FE”收到错误消息,并且由于没有前写2个字节破坏了OTP。
请查收附件中的图片。
正如我在以前的文章中提到我怀疑,不能够直接使用智能片段sysram下载并运行secondary_bootloader原因是智能摘录它的自我,因为我是能够下载的.bin使用SEGGER指挥官和下载,运行二进制文件。所以,没有我不认为如果你烧OTP二级足球运动员,将有这个问题,我也使用闪光灯(bunred二级bootloader的闪存)和二进制运行,因为它应该测试这一点。
关于与OTP的问题。这是最有可能造成由于OTP编程电源的问题。所以,请检查。
谢谢你的建议。我已经成功刻录程序到OTP(问题是与OTP供应6.8)。现在的二级引导程序工作正常。我能看到0×02,我能够使用智能片断工具加载应用程序到sysRAM。
但每当我加载应用固件虽然我的主控制器,它不工作。我正在正确ACK在发送标题(SOH和长度)和我在固件包的端得到CRC。由于CRC是匹配我发送ACK到BLE模块。但在那之后,我还是不断收到“0×02”。
似乎BLE模块正在重新启动,来自OTP的数据覆盖了我的应用程序代码。
我必须设置一些东西在OTP头来避免这个?或者在辅助引导加载程序固件中有什么遗漏吗?
注意:-根据阿尔卑斯参考手册,我在OTP头部做了以下更改。应用flag1:是的・应用flag2:是的・校准标志:[4]= 1。晶体16兆赫削减值:320・DMA长度:1 fc0
顺序是这样的话,器件将从OTP启动,它会从OTP加载自定义的引导程序,该设备将运行的引导程序,并开始检查你的自定义端口,一旦设备找到的东西它会开始复制从该FWUART到Sysram,然后当设备成功地完成了下载序列将转移到新下载的固件。二级引导程序运行的FW到RET RAM,而不是在sysram,所以我不认为OTP重写FW下载到sysram。也许下载固件运行,并在somepoint它造成的复位设备?没有额外的配置在OTP燃烧。
嗨MT_Dialog,
当设备成功完成下载顺序时,它将分支到新下载的fw。>>我觉得这个分支没有发生正常。我从BLE模块获得CRC之后发送ACK(0X06)。我希望Bootloader代码必须采取跳转到新下载的固件一旦从主机控制器得到了ACK的照顾。
“也许下载固件运行,并在somepoint它造成的复位设备?”> >没有。我已经尝试了我的应用程序代码和SDK中的示例代码(SDK 5.0.4\DA1458x_SDK\5.0.4\projects\host_apps\da1458x\proximity\reporter)。我已经发送了固件包含在“prox_reporter_ext.h”文件在上述项目。在这两种情况下,它都失败了。它要么被重置,要么程序跳到错误的地址,一旦程序计数器达到最大值,就从重置地址开始执行。
“在OTP中不需要燃烧额外的配置。”>>能否验证一下我对OTP头的改动?应用程序(应用程序flag1:是的・flag2:是的・校准标志:[4]= 1。晶体16兆赫削减值:320・DMA长度:1 fc0)
您为了测试这个检查这一点是所有circustances下发生的,而不是只有当bootloader被夷为OTP?比如你试图下载FW通过KEIL(为了使二次引导程序运行),并且在二级足球运动员运行下载使用智能片断足球运动员工具FW?I“已经试过上述和我经由UART能够从销P10和P11启动并检查确切位置次级引导程序分支时成功地上传的图像。
我看不出什么错,你已经烧入OTP的值,这两个标志应当设置为yes,以便从OTP开机,就取决于你的晶体XTAL 16MHz的调整值,和DMA长度,它不是一个必需品,但我不认为它会导致你的任何问题。
关于支化,当该装置已成功下载的FW次级引导加载程序然后它会去Start_run_user_application()在sw_reset()的引导程序将新下载的fw的矢量表堆栈值分配给SP寄存器和然后,将跳转到下载的固件的Reset_Handler。
谢谢你的支持。现在是工作的罚款。问题是与阅读固件阵列的方式。我已经采取的示例代码spi_booter.c从 “SDK 5.0.4 \ DA1458x_SDK \ 5.0.4 \项目\ host_apps \ da1458x \接近\本报记者\ SRC” 和转换它的UART接口。而转换,我犯了一个错误,导致读取错误的地址。
嗨,维克,
二级引导装载程序位于SDK工具文件夹中,你需要定义SUPPORT_AN_B_001为了启用二级引导装载程序特性,然后通过它通过禁用spi和i2c接口UART_SUPPORTED SPI_FLASH_SUPPORTED EEPROM_FLASH_SUPPORTED和定义。这样做之后,您必须通过更改UART_GPIO_PORT、UART_TX_PIN和UART_RX_PIN的定义,将UART引脚更改为您想要的引脚。以上操作应该没问题,您可以在将fw刻录到OTP之前进行测试,方法是将其直接运行到sysram并下载一个fw到UART。
由于MT_dialog
嗨MT_dialog,
谢谢您的快速回复。我已经按照你上次回复的步骤做了。为了测试,我已经下载了使用Jlink的辅助引导加载程序固件到sysram,我已经通过USB连接到Uart转换器的Uart线到PC。但是我在uart线中看不到任何东西。一旦引导加载程序固件成功加载,我预计BLE模块将连续发送“0x02”。
我已经下载了SDKhttps://support.dialog-semiconductor.com/connectivity/product/da14580?qt..。,并做了以下修改
并更改了UART_GPIO_PORT、UART_TX_PIN和UART_RX_PIN宏。请检查它。
将第24行从#undef UART_SUPPORTED改为#define UART_SUPPORTED
从#定义SPI_FLASH_SUPPORTED到和#undef SPI_FLASH_SUPPORTED行号27
第37行,从#undef SUPPORT_AN_B_001到#define SUPPORT_AN_B_001
嗨,维克,
我已经提到的配置是有效的,如果你不看到0 x02这意味着设备跟踪RX销,你没有设置高的状态,引导装载程序的主要功能在UART支持部分如果有条件(GPIO_GetPinStatus (UART_GPIO_PORT,在执行扫描过程之前检查RX引脚。
由于MT_dialog
嗨MT_dialog,
我在Rx引脚电压检查,我得到3.3伏。但我仍无法看到0×02。
如果我运行在调试模式下的代码,它工作正常。我能看到在终端0×02,我能够使用SmartSnippets工具来编程其他样本项目。我按照步骤在阿尔卑斯山的开发套件应用说明解释了在调试模式下运行。
我怎样才能使它在发布模式下工作?
嗨,维克,
究竟你的意思运行在调试模式和发布模式下的代码?二级引导装入程序的CFG_DEVELOPMENT_DEBUG定义禁用,就在我身边八方通输出从外部UART一个0×02字节的启动运行在RAM中的项目。我不熟悉的ALPS文件。
由于MT_dialog
你这边是否尝试通过P1_0作为Tx, P1_1作为Rx引导加载程序?
释放模式意味着我将使用smarsnippet工具下载.hex文件到sysRam。在这个方法中我没有得到0x02。
为了在调试模式下运行,我们在kiel中有一个选项,点击附件中显示的图标。然后我们可以逐步执行或连续运行代码。在这个方法中,我得到0X02。但是对于最终产品,我想使用hex文件。所以我想在刻录到OTP之前通过下载到sysRam来验证它。
如果您需要阿尔卑斯的文件,请发送您的电子邮件id到vivek@technosphere.in或者jasim@technosphere.in
嗨,维克,
我已经使用JTAG接口并通过智能片段测试的下载过程,事实上,我看到P10和P11的引脚无动作(我想,这是你所看到的),当下载的固件,但我使用的UART接口也试过和探讨这两个引脚和FW在正常运行,我可以假设,这与下载程序有关,而不是与.hex文件制作,在这两种情况下.hex文件是相同的,它反映在sysram但出于某种原因在下载使用智能片段从JTAG二进制当FW不运行,但同样我不认为这有什么做的固件,例如,如果你为了模拟一个OTP复制它应该加载二进制闪光正常工作以及通过UART下载固件。
由于MT_dialog
嗨MT_dialog,
我在我的harware别无选择挖掘PORT0管脚(这是使用内置的UART引导程序)。所以,我必须使用JLINK加载二次自举程序固件。如果我使用闪光灯JLINK二级引导程序hex文件,以OPT,它会正常工作?否则将面临同样的问题?
嗨MT_dialog,
我尝试过使用Jlink将hex文件刻录到OTP中。我遵循了WI_Dialog在文章中的指示https://support.dialog-semiconductor.com/program-da14580-otp-memory和用户手册 “UM-B-083”。但我“(第一MSB)在JTAG地址0x81FEC Adddittional错误信息:FF FF FF FE”收到错误消息,并且由于没有前写2个字节破坏了OTP。
请查收附件中的图片。
嗨,维克,
正如我在以前的文章中提到我怀疑,不能够直接使用智能片段sysram下载并运行secondary_bootloader原因是智能摘录它的自我,因为我是能够下载的.bin使用SEGGER指挥官和下载,运行二进制文件。所以,没有我不认为如果你烧OTP二级足球运动员,将有这个问题,我也使用闪光灯(bunred二级bootloader的闪存)和二进制运行,因为它应该测试这一点。
关于与OTP的问题。这是最有可能造成由于OTP编程电源的问题。所以,请检查。
由于MT_dialog
嗨MT_dialog,
谢谢你的建议。我已经成功刻录程序到OTP(问题是与OTP供应6.8)。现在的二级引导程序工作正常。我能看到0×02,我能够使用智能片断工具加载应用程序到sysRAM。
但每当我加载应用固件虽然我的主控制器,它不工作。我正在正确ACK在发送标题(SOH和长度)和我在固件包的端得到CRC。由于CRC是匹配我发送ACK到BLE模块。但在那之后,我还是不断收到“0×02”。
似乎BLE模块正在重新启动,来自OTP的数据覆盖了我的应用程序代码。
我必须设置一些东西在OTP头来避免这个?或者在辅助引导加载程序固件中有什么遗漏吗?
注意:-
根据阿尔卑斯参考手册,我在OTP头部做了以下更改。
应用flag1:是的・应用flag2:是的・校准标志:[4]= 1。晶体16兆赫削减值:320・DMA长度:1 fc0
嗨,维克,
顺序是这样的话,器件将从OTP启动,它会从OTP加载自定义的引导程序,该设备将运行的引导程序,并开始检查你的自定义端口,一旦设备找到的东西它会开始复制从该FWUART到Sysram,然后当设备成功地完成了下载序列将转移到新下载的固件。二级引导程序运行的FW到RET RAM,而不是在sysram,所以我不认为OTP重写FW下载到sysram。也许下载固件运行,并在somepoint它造成的复位设备?没有额外的配置在OTP燃烧。
由于MT_dialog
嗨MT_Dialog,
当设备成功完成下载顺序时,它将分支到新下载的fw。
>>我觉得这个分支没有发生正常。我从BLE模块获得CRC之后发送ACK(0X06)。我希望Bootloader代码必须采取跳转到新下载的固件一旦从主机控制器得到了ACK的照顾。
“也许下载固件运行,并在somepoint它造成的复位设备?”
> >没有。我已经尝试了我的应用程序代码和SDK中的示例代码(SDK 5.0.4\DA1458x_SDK\5.0.4\projects\host_apps\da1458x\proximity\reporter)。我已经发送了固件包含在“prox_reporter_ext.h”文件在上述项目。在这两种情况下,它都失败了。它要么被重置,要么程序跳到错误的地址,一旦程序计数器达到最大值,就从重置地址开始执行。
“在OTP中不需要燃烧额外的配置。”
>>能否验证一下我对OTP头的改动?应用程序(应用程序flag1:是的・flag2:是的・校准标志:[4]= 1。晶体16兆赫削减值:320・DMA长度:1 fc0)
嗨,维克,
您为了测试这个检查这一点是所有circustances下发生的,而不是只有当bootloader被夷为OTP?比如你试图下载FW通过KEIL(为了使二次引导程序运行),并且在二级足球运动员运行下载使用智能片断足球运动员工具FW?I“已经试过上述和我经由UART能够从销P10和P11启动并检查确切位置次级引导程序分支时成功地上传的图像。
我看不出什么错,你已经烧入OTP的值,这两个标志应当设置为yes,以便从OTP开机,就取决于你的晶体XTAL 16MHz的调整值,和DMA长度,它不是一个必需品,但我不认为它会导致你的任何问题。
关于支化,当该装置已成功下载的FW次级引导加载程序然后它会去Start_run_user_application()在sw_reset()的引导程序将新下载的fw的矢量表堆栈值分配给SP寄存器和然后,将跳转到下载的固件的Reset_Handler。
由于MT_dialog
嗨MT_dialog,
谢谢你的支持。现在是工作的罚款。问题是与阅读固件阵列的方式。我已经采取的示例代码spi_booter.c从 “SDK 5.0.4 \ DA1458x_SDK \ 5.0.4 \项目\ host_apps \ da1458x \接近\本报记者\ SRC” 和转换它的UART接口。而转换,我犯了一个错误,导致读取错误的地址。