嗨对话框,
我正在研究Suota服务及其在外部处理器模式下工作的DA14580中可能的实现(连接到应用程序代码所在的外部MCU)。
在未来的项目中,我们需要升级DA14580的固件代码,而不是外部MCU的固件代码。如果我正确了解,辅导功能将允许我们升级
只有外部MCU代码,而不是DA14580的代码,除非外部MCU能够擦除/编程外部SPI Flash,DA14580的二级引导程序预期
找到它将加载的新图像。
我对么?
谢谢你的支持,
scrat75。
设备:
嗨scrat75,
Suota将拍摄您从Android应用程序提供的图像,并将该图像写入连接到580的外部闪存/ EEPROM。在Suota操作完成后,580将从Flash启动并运行您刚下载的新固件。在完全嵌入式解决方案外部处理器的情况下,这意味着应用程序在外部MCU上运行Suota Wont更新在外部MCU上运行的应用程序。
谢谢mt_dialog.
嗨对话支持/用户,
正如您所写的那样,我可以解释在DA14580上运行的(Suota启用)应用程序任务能够擦除/写入外部
SPI Flash和还发送/触发(通过GTL Layer / UART接口)应用程序用户中的一些或全部通知事件/回调
在外部MCU上运行的部分。我对吗?
提前感谢您的答案。
嗨scrat75,
580可以在2个配置中运行,完全嵌入(在外部MCU上运行应用程序恳求,并与GTL -A对话框的自定义协议 - 通过UART通信)并完全托管(内部580 MCU运行应用程序和蓝牙堆栈)。在具有外部MCU的完全嵌入模式中,应用程序处理其位于580中的配置文件部分接收的消息。例如,在创建Suota数据库中,应用程序将发送app_spotar_create_db(),这将传递到580和数据库将被创建,然后580将使用创建数据库的确认消息进行响应,并且应用程序应在Handlembsg()函数中捕获此消息,并通过spotar_create_db_cfm_handler()在db创建之后处理它开始广告或为其他服务等创建DB等。
谢谢mt_dialog.
嗨对话支持/用户,
在这里,我的最终测试结果:
da1458x_sdk_5.0.3 \ da1458x_sdk \ 5.0.3 \ projects \ target_apps \ ble_examples \ prox_reporter_ext文件夹。
我修改了app_dis_sw_rev“0.0.1”在app.h标题文件中定义,我构建了项目的项目
我重命名的十六进制文件prox_reporter_ext.hex.;
da1458x_sdk_5.0.3 \ da1458x_sdk \ 5.0.3 \ projects \ target_apps \ prod_test \ prod_test文件夹。
我建立了生产宾文件的项目prod_test_580.bin.;
这文件ble_580_sw_version_0.h.包含以下代码行:
#define da14580_sw_version“v_5.0.3.0”
#define da14580_sw_version_date“2016-05-19 16:01”
#define da14580_sw_version_status“存储库版本”
现在文件ble_580_sw_version_1.h.包含以下代码行:
#define da14580_sw_version“v_5.0.3.1”
#define da14580_sw_version_date“2016-05-19 16:04”
#define da14580_sw_version_status“存储库版本”
C:\ Users \ monsminc \ documents \ dialog \ da1458x_sdk_5.0.3 \ da1458x_sdk \ 5.0.3 \ utilities \ secondare_bootloader那
制作secondary_bootloader.hex.;以二进制格式转换运行以下命令:
hex2bin secodut_bootloader.hex.
mkimage multi spi secofty_bootloader.bin prox_reporter_ext.img 0x8000 prod_test_580.img 0x13000 0x1f000 da14580.bin
要生成使用SmartSnippet(我没有启动的外部SPI Flash中刻录的双重图像
图像是因为如果我正确理解了mkimage.exe.自动操作该操作);
在里面da1458x_sdk_5.0.3 \ da1458x_sdk \ 5.0.3 \ projects \ host_apps \ windows \ proximity \ Reporter文件夹。
我执行了结果host_proxr_sdk.exe.将其传递在命令行中COMM编号
当我将DA14580开发套件附加到我的PC时看到的虚拟COM端口。
并复制在Nexus 9 \内部存储\套筒文件夹另一个IMG文件以前实验结果。
由此产生的下一个屏幕向我展示了我设置的确切固件修订版和软件版本。点击
更新设备Suota应用程序的按钮让我获得了我选择的下一个屏幕页面
图像银行升级;我选择了第二个(图像库设置为2)告诉应用程序重新编程SPI
闪存映射在P0_0(SCK),P0_3(CS),P0_5(MISO)和P0_6(MISO)上。拟议正确下载新的
我选择的图像(我在屏幕应用程序和控制台中看到下载进度
host_proxr.项目。
我也终止了运行的控制台程序host_proxr.项目。然后我比较了
选择的选择图像在Nexus 9上(我用Suota应用程序下载)对文件
upgrade_image2.img由控制台程序生成(存在于
da1458x_sdk_5.0.3 \ da1458x_sdk \ 5.0.3 \ projects \ host_apps \ windows \ proximity \ eporer \ host_proxr_sdk文件夹:
它们的大小相同,仅在一个字节中(字节33th - 我使用cmp -l -b file1.img file2.img来比较两个图像)。
在上面暴露的测试之前和之后读取其内容并与看他们不同。他们匹配。
这意味着在外部模式(也称为完全嵌入),Suota应用程序允许更新固件
外部MCU,而不是在SPI闪光灯中燃烧的。
所以我的问题是:有没有办法更新SPI Flash,DA14580在存在外部模式配置中的靴子?
提前感谢您的注意
嗨scrat75,
外部接近Reporter中的示例获取从Suota的文件并将其存储在磁盘上。因此,由于该文件位于外部处理器,您可以选择直接下载580的固件。由于您不想直接下载固件,并且您希望使用图像刻录闪光灯,我可以想到两个选项。
1)外部处理器用580共享SPI闪光灯,因此将图像直接刻录到SPI的相应内存地址(棘手的部分是为了确保两个MCU都试图访问闪光灯当外部MCU下载二进制时,您可以尝试将580保持在重置状态。
2)您可以通过580将FW下载到Flash,在这种情况下,您可以更改Flash_Programmer(智能片段使用的实用程序),将Flash_Programmer下载到580然后提供新的仿仿图像,以便580将将其刻录到闪光灯(这需要从MCU的主机侧实现)。
谢谢mt_dialog.
嗨对话支持,
在用户手册中还是在应用程序注意文件夹中有文件,该文件夹解释了外部主MCU的协议和flash_programmer
两者都必须实施并遵循交换数据并正确编程外部SPI闪光灯。我知道我可以获得它的逆向工程
flash_programmer一篇的代码项目,但我认为如果你能把我指向官方文件,那就更好了..
提前感谢您的回复
嗨scrat75,
上面解释的实现不是通过对话框实现,并且没有解释闪存程序员功能的文档。Flash Programmer的主要目的是仅在智能片段中使用而不是由外部MCU使用,以便通过580刻录闪光灯,但这是您想要遵循此选项的唯一可用示例。
谢谢mt_dialog.