2个职位/ 0个新职位
最后发表
ciano
离线
最后看到:2周4天前
加入:2014-10-03 08:13
OTP问题

亲爱的对话框,

我们一直在尝试向西南方向燃烧DA14580,但没有任何运气。
作为起点,我们尝试从SDK中刻录接近示例“reporter_fh”。
以下是我们进行编程的步骤:
步骤1
首先,我们将配置定义更改为
#define DEVELOPMENT_DEBUG 0 //0: OTP代码,1:JTAG代码
#定义APP_BOOT_FROM_OTP
# undef CFG_EXT_SLEEP
#定义CFG_DEEP_SLEEP
其他的都保持在reporter_fh中的原始值。
,并完成了一个完整的构建。
步骤2
打开SmartSnippets v3.6并尝试导入新编译的hex文件。然而,这里我们得到了以下消息:
[INFO @15-01-21 10:41:27]从文件full_emb_sysram.hex中读取0字节。25356字节被忽略,因为它们的记录地址大于或等于0x80000。
为了克服这个问题,我们在“scatterfile_common”中手动更改了LR的地址。sct”
LR_IROM1 0x00000000 0x160 {;负荷地区size_region
ER_IROM1 0x00000000 0x160 {;加载地址=执行地址
*.o(重置,+第一)

lr_iro2 0x00000160 0x160 {
er_iro2 0x00000160 0x160 {
.ANY (jump_table_mem_area)

LR_IROM3 0x000002C0 0x80 {
ER_IROM3 0x000002C0 0x80 {
.ANY (timeout_table_area)

LR_IROM4 0x00000340 0x100 {
ER_IROM4 0x00000340 0x100 {
.ANY (nvds_data_storage_area)

LR_IROM5 0x00000440 0x93c0 {
ER_IROM5 0x00000440 0x7ac0 {
* (InRoot $ $部分);所有必须在
;根区域,例如__main.o,
;__scatter *。o, __dc *。和* Region$$Table . o
boot_vectors。o (+ RO)
system_ARMCM0。o (+ RO)
; * armlib * (+ RO)
.ANY (+ RO)
.ANY (+ RW)
在更改散点文件之后,我们能够编译一个十六进制文件,该文件被加载到smarsnippet中并刻录到DA14580中。
问题:如果手动更改分散文件是生成OTP十六进制的正确方法,请给出建议……或者这是错误的?如果错了,正确的程序是什么?
步骤3:
在将十六进制编程到OTP后,我们配置了OTP头:
应用程序标志1:是
应用程序标志1:是
DMA长度:0x000017C2
其他都保持原值。
重映射标志:SRAM为0
JTAG Enable标志:0x0使能
...
步骤4:
断开JTAG,通过USB供电。DA14580现在应该将OTP镜像到SRAM,并开始运行reporter_fh。然而,DA15480并没有提供任何广告数据,它似乎已经死了。
问题:请您仔细看看我们的步骤,并指引我们正确的方向。
问:我们在哪里可以找到关于OTP报头的详细信息?文档的旗帜。
问题:正如之前所指出的,我们必须手动更改scatterfile。这个编辑正确吗?还有其他更正确的方法来生成OTP的HEX吗?

最好的问候,
Ciano霜
丹麦

ciano
离线
最后看到:2周4天前
加入:2014-10-03 08:13
嗨亲爱的对话框

嗨亲爱的对话框

谢谢你的支持。
在对话框支持的帮助下,我们发现了这个问题。在smarsnippet中,我选择了错误的IC。我选择了DA14580,但我有DA14580-01。在选择DA14580-01之后,smarsnippet能够加载hex文件,而不改变scatterfile。

再一次. .谢谢你的支持

最好的问候,
Ciano霜