当FW烧录到SPI flash时,更改BD地址

⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.wsdof.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
8个员额/0个新员额
最后发表
维克林
离线
最后看到:3年4个月前
加入:2016-03-31 03:11
当FW烧录到SPI flash时,更改BD地址

因为我们想在FW烧成SPI flash的时候修改DA14580的BD地址,我们该怎么做呢?
(让每个设备有不同的BD地址。)

方法1:
我们在SPI闪光中燃烧FW。如果可能,我们可以通过修改十六进制文件的BD地址来修改BD地址吗?(不要再次编译。)
如果我们可以做到,请帮助让我们知道如何做。

方法2:
我们在SPI flash中烧FW。然后把BD地址从OTP改过来。
但我们只想更改BD地址,而不使用OTP中的其他设置。我们怎么办?
能否在SmartSniooets工具箱v4.7.3.1690中提供已刻录的OTP文件和命令行方法?(Jtag端口)
我们将直接从Dialog中刻录OTP文件。
(希望逐步给我们提供方法。)

FW烧成SPI flash时,如果你有其他更好的方法更改BD地址,请帮忙告诉我们。
谢谢

设备:
MT_dialog
离线
最后看到:3个月2周前
工作人员
加入:2015-06-08 34
嗨,林维克,

嗨,林维克,

580没有闪存,因此在为580编译SDK时,更改每个设备的bd地址的选项是通过NVD,NVD可以通过OTP或fw donwload填充。现在,如果您使用的是外部闪存,则必须修改SDK,以便从闪存读取bd地址,此方法适用于583,该583板上有一个内部闪存。583是如何实现的,您将能够在system_init()函数中调用的nvds_read_bdaddr()函数中找到它。读取583闪存的函数是nvds_read_bdaddr_from_da14583_flash()。nvds_read_bdaddr_from_da14583_flash()中的代码将在flash中的指定地址中查找产品标头,如果值不是零,则检查指定的偏移量。如果该值有效,它将获取该值并将其应用于用于设置设备的bd地址的dev_bdaddr变量。因此,通过实现类似的功能,并使用不同的db地址在该偏移量中燃烧每个设备的闪存,将允许您为从闪存读取的每个设备拥有不同的地址。

谢谢你的对话

维克林
离线
最后看到:3年4个月前
加入:2016-03-31 03:11
所以我们必须修改代码

因此,我们必须模仿前面提到的DA14583代码来修改代码,如果我们想从SPI闪存更改BD地址,则不能直接使用前面提到的DA14583函数。
但是通过这种方法,如何在SPI flash中添加新的BD地址呢?正如我所知,当我们将十六进制文件刻录到SPI flash时,smarsnippets将检查校验和。

但是,“方法2”呢?也许这是一个简单的方法。

MT_dialog
离线
最后看到:3个月2周前
工作人员
加入:2015-06-08 34
嗨,林维克,

嗨,林维克,

从580上的spi闪存获取bd地址的代码与583相同,但您必须删除583定义,以便将代码包括在构建中,更改函数名,将默认583闪存的引脚更改为闪存设置等。但作为实现,将是相同的。使用智能代码段,您可以使用proprity头程序员来创建头并在flash中刻录创建的头。此外,该标题将位于flash中的不同地址,SS将检查指示下载的内容是否正确下载。

关于第二种方法,它将需要燃烧的OTP头,我有印象,你不会想要燃烧的OTP,但如果它是对你燃烧的OTP,然后SDK将读取OTP bd地址值没有任何修改。为了做到这一点,所有你需要做的就是在设备唯一ID字段的OTP头中刻录bd地址(智能片段“OTP头”工具)。这是所有你要做的设备从OTP获得bd地址,你不需要改变任何其他东西。如果您想使用命令行进行此操作,请在Smart Snippets中签入帮助选项,并打开用户手册。在用户手册中,您可以找到用于刻录OTP的cli命令。

由于MT_dialog

维克林
离线
最后看到:3年4个月前
加入:2016-03-31 03:11
对于方法1:

对于方法1:
你可以提供烧文件时,使用专有头程序?
每个设备都有相同的刻录文件(唯一的区别是BD地址)。是这样吗?
我们应该在SPI闪存中的哪个位置刻录FW和收割台?

对于方法2:
这意味着我们可以通过以下步骤更改BD地址,并且没有副作用。是这样吗?
步骤1:从DA14580读取OTP报头。
步骤2:修改读取OTP头的“设备唯一ID”中的BD地址。
步骤3:将修改后的OTP头写入DA14580。

谢谢

MT_dialog
离线
最后看到:3个月2周前
工作人员
加入:2015-06-08 34
嗨,林维克,

嗨,林维克,

  1. 请在附件中找到一个.txt文件,其中有一个示例,说明了产品标题的含义,您可以将其加载到专有的标题程序员工具中,并填写您想要的数据,然后将其刻录到闪存中。每个设备都应该使用该头,但使用不同的bd地址进行刻录。SDK将检查的默认地址是0x1F000,但由用户决定。
  2. 这意味着你可以烧的OTP报头字段,我已经指定上面与智能片段工具没有修改任何其他在报头和SDK将检查特定的字段时,系统启动和它的时间选择一个bd地址。当SDK试图填充bd地址时,指定的OTP报头字段是它将检查的第一个位置。

由于MT_dialog

维克林
离线
最后看到:3年4个月前
加入:2016-03-31 03:11
方法一(更改BD

对于方法1(通过SPI闪存更改BD地址):
我们只需要修改附件文件中以下的“112233445566”。其他物品可保留原状(无价值)。这是对的吗?
6 String bd_address BD地址112233445566

对于方法2(通过OTP头更改BD地址):
如果我们不改变OTP头中的任何内容,我们就不能通过OTP头来改变BD地址。
所以我认为我们应该按照以下步骤更改BD地址,并且没有副作用。这是对的吗?
步骤1:从DA14580读取OTP报头。
步骤2:修改读取OTP头的“设备唯一ID”中的BD地址。
步骤3:将修改后的OTP头写入DA14580。

谢谢

MT_dialog
离线
最后看到:3个月2周前
工作人员
加入:2015-06-08 34
嗨,林维克,

嗨,林维克,

  1. 除了bd地址字段,您还需要用0x7052填充签名头,以便fw确认这是一个有效的产品头。
  2. 我不明白这个问题,为了烧OTP头在指定的领域,SDK读作为一个bd地址,你将不得不使用智能片段工具,并应用VPP电压,为了烧OTP头。所以你应该遵循的步骤是:
    1. 点击connect(连接)按钮,可下载刻录OTP报头的fw,这也将自动读取内存内容。
    2. 更改设置设备bd地址的两个“设备唯一ID”字段。
    3. 点击“燃烧”按钮,让数值在田野中燃烧,然后你就可以开始了。

由于MT_dialog