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

了解更多常见问题教程

8个职位/ 0个新职位
最后发表
维克林
离线
最后看到:2年11个月前
加入:2016-03-31 03:11
当FW烧录到SPI flash时,更改BD地址

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

方法1:
我们在SPI flash中烧FW。如果可以的话,我们是否可以通过修改hex文件的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
离线
最后看到:18小时33分钟前
工作人员
加入:2015-06-08 34
嗨,维克,

嗨,维克,

580没有flash,所以当编译580的SDK时,每个设备更改bd地址的选项是通过NVDS,可以通过OTP或下载的fw填充。现在,如果你正在使用一个外部flash,你将不得不修改SDK,以便从flash读取bd地址,这个方法存在于583,其中有一个内部flash板。您可以在system_init()函数中调用的nvds_read_bdaddr()函数中找到583是如何做到这一点的。读取583的flash的函数是nvds_read_bdaddr_from_da14583_flash()。nvds_read_bdaddr_from_da14583_flash()中的代码将在flash中指定的地址中查找产品头,如果值不是零,则检查指定的偏移量。如果该值是有效的,它将接受该值并将其应用到dev_bdaddr变量,该变量用于设置设备的bd地址。因此,通过实现类似的东西和燃烧每个设备的闪存在那个偏移与不同的db地址将允许你有一个不同的地址为每个设备从闪存读取。

由于MT_Dialog

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

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

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

MT_dialog
离线
最后看到:18小时33分钟前
工作人员
加入:2015-06-08 34
嗨,维克,

嗨,维克,

从spi的bd地址的代码flash在580与583年相同但你会删除583定义为包括代码构建,改变函数名改变默认的针583闪闪光灯设置等。但是作为一个实现是一样的。使用Smart Snippets,您可以使用适当的头程序设计器来创建头文件,并在flash中刻录创建的头文件。同样,这个头将在不同的地址在flash SS将检查,无论什么被指示被下载是正确的下载。

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

由于MT_dialog

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

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

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

谢谢

MT_dialog
离线
最后看到:18小时33分钟前
工作人员
加入:2015-06-08 34
嗨,维克,

嗨,维克,

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

由于MT_dialog

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

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

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

谢谢。

MT_dialog
离线
最后看到:18小时33分钟前
工作人员
加入:2015-06-08 34
嗨,维克,

嗨,维克,

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

由于MT_dialog