如何为辅助引导装载器配置UART引脚?

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
16个员额/ 0个新员额
最后一篇
vivek.
离线
最后看到:2年8个月前
加入:2017-07-08 07:11
如何为辅助引导装载器配置UART引脚?

你好,

我想通过J-Link刻录一个辅助引导加载程序到OTP。我想通过UART将应用程序代码从主控制器复制到RAM。我想配置GPIO引脚P1_0为Tx, P1_1为引导加载器的Rx。从哪里我可以下载辅助引导加载程序和我如何配置Tx和Rx引脚?

设备:
MT_dialog
离线
最后看到:5个月2周前
职员
加入:2015-06-08 34
嗨,维克,

嗨,维克,

二级引导装载程序位于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

vivek.
离线
最后看到:2年8个月前
加入:2017-07-08 07:11
嗨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
从#define spi_flash_supported到#undef spi_flash_supported的行数27
第37行,从#undef SUPPORT_AN_B_001到#define SUPPORT_AN_B_001

MT_dialog
离线
最后看到:5个月2周前
职员
加入:2015-06-08 34
嗨,维克,

嗨,维克,

我已经提到的配置是有效的,如果你不看到0 x02这意味着设备跟踪RX销,你没有设置高的状态,引导装载程序的主要功能在UART支持部分如果有条件(GPIO_GetPinStatus (UART_GPIO_PORT,在执行扫描过程之前检查RX引脚。

由于MT_dialog

vivek.
离线
最后看到:2年8个月前
加入:2017-07-08 07:11
嗨MT_dialog,

嗨MT_dialog,

我在RX引脚上检查了电压,我得到3.3伏。但我仍然无法看到0x02。

如果我在调试模式下运行代码,则它正常工作。我能够在终端中看到0x02,我能够使用SmartSnippets工具编程其他示例项目。我遵循了在Alps开发套件应用笔记中解释的步骤,以便在调试模式下运行。

如何在发布模式下工作?

MT_dialog
离线
最后看到:5个月2周前
职员
加入:2015-06-08 34
嗨,维克,

嗨,维克,

您究竟是什么意思在调试模式和释放模式下运行代码?副引导程序具有禁用的CFG_Development_debug定义,在我的侧面输出RAM中的项目输出0x02字节以从外部UART引导。我不熟悉阿尔卑斯山文件。

由于MT_dialog

vivek.
离线
最后看到:2年8个月前
加入:2017-07-08 07:11
你这边你在努力吗

你这边是否尝试通过P1_0作为Tx, P1_1作为Rx引导加载程序?

释放模式意味着我将使用smarsnippet工具下载.hex文件到sysRam。在这个方法中我没有得到0x02。

为了在调试模式下运行,我们在kiel中有一个选项,点击附件中显示的图标。然后我们可以逐步执行或连续运行代码。在这个方法中,我得到0X02。但是对于最终产品,我想使用hex文件。所以我想在刻录到OTP之前通过下载到sysRam来验证它。

如果您需要阿尔卑斯的文件,请发送您的电子邮件id到vivek@technosphere.in要么jasim@technosphere.in

附件:
MT_dialog
离线
最后看到:5个月2周前
职员
加入:2015-06-08 34
嗨,维克,

嗨,维克,

我通过使用JTAG接口测试了下载过程,确实我看到了在P10和P11引脚上没有动作(我认为这是你所看到的)下载FW时,但我也尝试使用UART接口探讨了两个引脚和FW正常运行,我可以假设这与下载过程有关,而不是使用.hex文件,在两种情况下,在Sysram中都是相同的,它是镜像,但出于某种原因从使用智能片段从JTAG下载二进制文件时FW无法运行,但是,我不认为这与FW无关,如果例如,您将二进制文件加载到Flash才能模仿OTP复制它应该正常工作以及下载FW通过UART。

由于MT_dialog

vivek.
离线
最后看到:2年8个月前
加入:2017-07-08 07:11
嗨MT_dialog,

嗨MT_dialog,

我的HARWAW中没有选项以点击Port0引脚(用于Inbuilt UART引导程序)。所以我必须使用jlink加载辅助引导程序固件。如果我刷掉次级引导加载程序的十六进制文件来选择使用jlink,它会正常工作吗?或者它会面临同样的问题?

vivek.
离线
最后看到:2年8个月前
加入:2017-07-08 07:11
嗨MT_dialog,

嗨MT_dialog,

我尝试过使用Jlink将hex文件刻录到OTP中。我遵循了WI_Dialog在文章中的指示https://support.dialog-semicondiondiondum/program-da14580-otp-memory.和用户手册“UM-B-083”。但我收到错误消息“JTAG地址0x81FEC(MSB第一):FF FF FE”并通过在失败之前通过写2个字节来损坏OTP。

请查收附件中的图片。

MT_dialog
离线
最后看到:5个月2周前
职员
加入:2015-06-08 34
嗨,维克,

嗨,维克,

正如我上一篇文章中所提到的那样,我怀疑没有能够使用智能片段直接从Sysram下载和运行seconder_bootlooder的原因是智能片段它是自我的,因为我能够使用Segger指挥官下载.bin运行二进制文件。所以,如果在OTP中刻录辅助启动器,我不认为会有这个问题,我也使用闪存(闪存中的闪存中的次级引导加载程序)和二进制运行时测试此问题。

关于OTP的问题。这可能是由于OTP编程供应引起的问题。所以请检查一下。

由于MT_dialog

vivek.
离线
最后看到:2年8个月前
加入:2017-07-08 07:11
嗨MT_dialog,

嗨MT_dialog,

感谢您的建议。我已成功将程序刻录为OTP(问题与OTP Supply 6.8)。二级引导加载程序现在正常工作。我能够看到0x02,我能够使用Smart Scippet工具加载到Sysram的应用程序。

但只要我加载应用程序固件虽然我的主机控制器虽然,但它无法正常工作。发送标题(SOH和Length)时,我正在获得合适的ACK,我在固件数据包结束时获得CRC。由于CRC匹配我将ACK发送到BLE模块。但在那之后,我持续获得“0x02”。

似乎BLE模块正在重新启动,来自OTP的数据覆盖了我的应用程序代码。

我必须设置一些东西在OTP头来避免这个?或者在辅助引导加载程序固件中有什么遗漏吗?

注意:-
根据阿尔卑斯参考手册,我在OTP头部做了以下更改。
应用flag1:是的・应用flag2:是的・校准标志:[4]= 1。晶体16兆赫削减值:320・DMA长度:1 fc0

MT_dialog
离线
最后看到:5个月2周前
职员
加入:2015-06-08 34
嗨,维克,

嗨,维克,

该序列如此,设备将从OTP引导,它将从OTP加载自定义引导加载程序,设备将运行引导加载程序并在设备查找内容时立即开始检查您的自定义端口,从而开始复制FWUART到Sysram,然后当设备成功完成下载序列时,它将分支到新下载的FW。辅助引导加载程序的FW运行到RET RAM而不是在Sysram中,因此我不认为OTP将下载到Sysram中的FW重写。也许下载的FW运行以及Somepoint它会导致重置设备?在OTP中没有燃烧额外的配置。

由于MT_dialog

vivek.
离线
最后看到:2年8个月前
加入:2017-07-08 07:11
嗨MT_Dialog,

嗨MT_Dialog,

当设备成功完成下载顺序时,它将分支到新下载的fw。
>>我认为这个分支没有正常发生。从BLE模块获取CRC后,我正在发送ACK(0x06)。我希望引导加载程序代码一旦从主机控制器获得ACK就必须处理分支到新下载的固件。

“也许正在下载的FW运行以及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)

MT_dialog
离线
最后看到:5个月2周前
职员
加入:2015-06-08 34
嗨,维克,

嗨,维克,

您是否测试过这一点以检查这是否是在所有通行条件下发生的东西,而且不仅当引导加载程序刻录到OTP时?例如,您尝试通过Keil下载FW(为了运行次级引导加载程序),而辅助引导者运行使用Smart Scippets Booter Tool下载FW?我试过上面的问题,我能够通过UART从引脚P10和P11引导,并在成功上传图像时准确地检查辅助靴子分支的位置。

我没有看到烧焦到OTP的值的任何错误,两个标志都应该设置为yes,以便从OTP引导,这对于依赖于您的水晶的XTAL 16MHz修剪值,并且DMA长度不是必需品,但我不认为它会给你带来任何问题。

关于分支,当设备成功下载FW时,辅助引导加载程序将转到sw_reset()中的start_run_user_application()将从新下载的fw的向量表中分配堆栈值到sp寄存器和然后将分支到下载的fw的reset_handler。

由于MT_dialog

vivek.
离线
最后看到:2年8个月前
加入:2017-07-08 07:11
嗨MT_dialog,

嗨MT_dialog,

感谢您的支持。它现在正常工作。问题是阅读固件阵列的方式。我已经参与了“SDK 5.0.4 \ da1458x_sdk \ 5.0.4 \ projects \ host_apps \ da1458x \ proximity \ eporter \ src”的示例代码spi_booter.c.并将其转换为UART接口。在转换时,我犯了一个错误,导致读错的地址。