15个员额/ 0个新员额
最后发表
kqtrinh
离线
最后看到:3年10个月前
加入:2016-08-24 00:17
DA14580 Basic Kit SDK

关于580 dsp外设模式FW代码的问题,我想用它作为我们定制嵌入式软件开发的起点。

现在,我想了解如何凯尔IDE的机制或SmartSnippets下载固件的位流从主机电脑通过USB连接到单片机在580年接收比特流写入flash或加载到RAM中。上电后,我相信580会将FW从Flash加载到RAM中并开始执行。然而,当580目前没有FW驻留在flash中,我认为应该存在一段在RAM中运行的代码,它将处理从SmartSnippets或Keil传入FW到flash或RAM的编写。这段代码可能被称为ROM代码,有点像PC的BIOS fw。你能告诉我处理flash或RAM上传接口的那部分代码吗?如果我完全偏离基地,请教育我,使我了解这个过程如何工作,以帮助我在我们的定制发展。

如果有一个详细解释这个过程的文档,那就更好了。

谢谢你!
——潘文凯

设备:
MT_dialog
离线
最后看到:3个月5天前
工作人员
加入:2015-06-08 34
嗨kqtrinh,

嗨kqtrinh,

你可以看看AN-B-001.pdf或UM-B-012.pdf,这些文档提到了引导顺序是如何工作的,代码是在哪里下载和运行的。存在于580和加载一个外部fw的代码被称为主引导加载程序(或仅仅是引导加载程序),它位于ROM内存区域。源代码不可用,但它的功能在an - b -001文档中有描述,它的数量可供580通过UART/SPI/I2C下载代码。

由于MT_dialog

kqtrinh
离线
最后看到:3年10个月前
加入:2016-08-24 00:17
谢谢你的及时通知

谢谢你的及时回复。这两个文档帮助我更多地了解了580引导过程是如何工作的。

ROM代码不可用没关系,um - b . 012.pdf文档中描述的辅助引导加载程序或其他接近其从flash引导功能的示例代码可用吗?
也许我会试着描述我的开发方案,你可以建议如何完成。有了这个基本工具包,我可以直接用Keil将代码加载到SRAM中调试FW,同时我还可以用SmartSnippets编写flash。也有写OTP与SmartSnippets,我还没有一个需要使用的时候。

我们的定制板很简单。580将从手机接收消息,并通过580内部UART总线将其发送到显示设备。

为了调试580的应用程序代码,我们将用Atmel芯片构建一个外部调试板(市场上有这样的板吗?)(由于尺寸限制,与580不在同一个板上)。基本上580基本套件分为两块板。

看看这个HW设计,580个应用程序代码会有闪光区。连接到580 UART接口的Display芯片也有FW代码,它需要引导和执行。我们希望580应用程序代码和Display FW代码都在同一个闪存中(我认为我们不需要OTP内存,除非有这样做的理由)。

我对我们开发板的启动顺序的问题如下:

1.在上面的HW设计中,我需要一种机制来读写Flash,以便将580个应用程序代码从Flash加载到SRAM中。这是辅助引导加载程序的工作吗?但是使用辅助引导加载程序需要板载OTP。是否有辅助引导加载程序的源代码或类似的东西?

2.假设580现在已经启动并从Flash启动,它需要充当Display设备的外部主机控制器。它需要为显示设备FW读取Flash,并将其通过UART发送到显示设备,以便它现在可以启动。

这就是我目前对我们的开发板的引导顺序的方法。从你可以看到的,我们需要代码读/写Flash和转储它到SRAM,以及转储它到UART总线由580 CPU。

感谢您的反馈和建议……

谢谢,
——潘文凯

MT_dialog
离线
最后看到:3个月5天前
工作人员
加入:2015-06-08 34
嗨kqtrinh,

嗨kqtrinh,

是的,可以在SDK的utilities文件夹中找到辅助引导加载程序,它与主引导加载程序非常相似。关于调试器模块,您可以使用Segger Jlink Lite ARM调试器,与专家工具包使用的调试器相同。关于你的问题:

1)为了加载fw从flash到580系统ram你不需要一个辅助引导加载程序,主将能够为你做,只要你遵循默认引脚连接为SPI引导。第二个引导加载程序是分配不同的引导引脚,打开闪存在情况下,你关闭它的低功耗,加载不同的图像(SUOTA功能等)。如前所述,辅助引导加载程序源代码可在SDK的utilities目录中获得。

2)如果显示芯片需要转发我580需要发送额外的假设,如果芯片无法直接从flash下载它,所以你需要一个常规的580年将阅读flash和通过UART发送它的显示。580将执行正常的启动顺序,之后它将充当显示器和flash之间的中间人。

由于MT_dialog

kqtrinh
离线
最后看到:3年10个月前
加入:2016-08-24 00:17
是否有示例代码

是否有从Flash读取/写入的示例代码?
谢谢,
——潘文凯

MT_dialog
离线
最后看到:3个月5天前
工作人员
加入:2015-06-08 34
嗨kqtrinh,

嗨kqtrinh,

有一个用于在flash中编写的驱动程序,也有一个与flash交互的示例,示例位于spi目录中的peripheral_examples项目的SDK中。正如前面提到的,在utilities目录中还有secondary_bootloader源代码。请查看以下SDK目录

DA1458x_SDK\5.0.4\utilities\secondary_bootloader:辅助引导加载器

DA1458x_SDK\5.0.4\projects\target_apps\peripheral_examples\spi: spi flash示例

由于MT_dialog

kqtrinh
离线
最后看到:3年10个月前
加入:2016-08-24 00:17
关于你的回答

关于你对上面问题1的回答,如果我理解正确的话,我不需要辅助引导程序来做我需要做的事情。主引导加载程序可以完成这项工作。我的问题是:

1.主引导加载程序是否驻留在ROM中?如果是这样的话,当我们开始生产时,我是否需要手动加载每个芯片的主引导加载程序到ROM中?还是在我们收到生产的DA14580s时就已经为我们完成了这个流程?

2.假设DA应用FW驻留在SPI Flash中,主加载器从外部SPI Flash地址中读取FW并下载到SysRAM?默认地址是0吗?起始地址是可编程的吗?

谢谢,
——潘文凯

kqtrinh
离线
最后看到:3年10个月前
加入:2016-08-24 00:17
跟踪问题:

跟踪问题:

1.外部PC应用如SmartSnippets如何直接访问(读写/擦除FW) 580外部闪存。我可以使用SmartSnippets来flash数据文件,供FW应用程序使用吗?它必须绑定到某种格式上传这个数据文件到flash吗?

2.一旦FW在外部Flash上,ROM主引导加载程序必须知道2条信息:地址和装载到SRAM的FW大小。SmartSnippets是否有这些信息设置在闪存的某个地方,所以ROM有知识,所以它可以加载FW到SRAM?

3.对于flash中的数据文件,FW应用程序代码还需要知道存储在flash中的数据的地址和大小,以便读取和使用这些数据。

谢谢,
——潘文凯

MT_dialog
离线
最后看到:3个月5天前
工作人员
加入:2015-06-08 34
嗨kqtrinh,

嗨kqtrinh,

1)主引导加载程序已经在ROM中烧录,加载程序的功能在AN-B-001.pdf文档中有描述,通常它为您提供一些标准引脚,以便通过UART/SPI/I2C引导。当你启动你的设备时,引导加载程序将执行,你不需要烧毁引导加载程序,因为我已经提到它已经位于ROM中。

2)引导加载程序当程序是flash相关的,580作为主程序执行时,它将访问flash内存的地址0,在主引导加载程序中这是不可编程的。所有这些信息都记录在我提到的。pdf文件中。

关于后续问题:

1)当智能片段被指示连接580为了编程的flash它下载一个小fw命名为flash_programmer或jtag_programmer,该fw处理所有的命令从智能片段(擦除/烧伤等)。是的,你可以使用智能片段来flash你的fw应用程序。关于格式的问题,我不太明白,SS会把。hex转换成。bin,或者你可以直接把。bin文件放进去,工具会把它刻录到你的flash上。

2)请阅读我所指示的手册,以了解引导加载程序遵循的程序。

3)正如我提到的,580在SPI模式将请求数据从地址0从flash和flash应该开始发送图像。映像必须是可引导的,这意味着它应该有可引导头和代码长度——如果选择可引导选项,则由智能代码片段测量和分配。因此,Smart Snippets将额外做的是附加0x70 0x50头,以表明图像是可引导的,应用一些零填充并附加.bin文件的大小。

由于MT_dialog

kqtrinh
离线
最后看到:3年10个月前
加入:2016-08-24 00:17
让我澄清一下我的问题

让我把我的问题说清楚一点。

因此,DA在flash中加载了从地址0开始的应用FW,所以主加载器在上电时可以从flash读取并将其写入SysRAM。在完全启动并在SysRAM中运行时,自定义FW需要从flash中获取一些数据来执行其任务。这是我们打算编写的自定义FW中的一些算法的输入数据。这是我之前问的关于数据文件的问题。我可以使用SS上传数据文件到Flash为我的自定义FW消费后,它被引导?该数据文件不是一个可引导的映像。这只是FW算法中需要的一些数据。对于SS能够刻录这个数据文件到flash,它需要遵循一些格式,所以SS将识别它并能够刻录到flash ?

谢谢,
——潘文凯

MT_dialog
离线
最后看到:3个月5天前
工作人员
加入:2015-06-08 34
嗨kqtrinh,

嗨kqtrinh,

是的,智能片段是能够烧你的自定义数据到flash,你可以使用或专有的头程序员或甚至flash燃烧器,没有任何特定的格式遵循为了烧数据到flash使用智能片段。你可以通过在某个地址将一个随机的二进制文件刻录到你的开发工具包flash中进行测试。

由于MT_dialog

kqtrinh
离线
最后看到:3年10个月前
加入:2016-08-24 00:17
我想学习怎么做

我想了解SmartSnippets如何使用flash_programmer或jtag_programmer来/写/擦除flash。你有它们的源代码吗?

谢谢,
——潘文凯

kqtrinh
离线
最后看到:3年10个月前
加入:2016-08-24 00:17
不要紧。找到了。

不要紧。找到了。

kqtrinh
离线
最后看到:3年10个月前
加入:2016-08-24 00:17
有申请说明吗

是否有一个应用程序说明,讨论flash_programmer实用程序?

MT_dialog
离线
最后看到:3个月5天前
工作人员
加入:2015-06-08 34
嗨kqtrinh,

嗨kqtrinh,

不,没有应用程序注释记录jtag_programmer的功能。此fw被Smart Snippets工具使用,而不是作为代码参考。

另外,请不要在一个不相关的话题上发布一个新的问题,你总是可以创建一个新的帖子。

由于MT_dialog