2个帖子/ 0新
最后一篇
ciano.
离线
最后一次露面:2周4天前
加入:2014-10-03 08:13
OTP问题

亲爱的对话框,

我们一直试图将SW刻录到DA14580中,但没有任何运气。
对于起点,我们尝试从SDK刻录“reporter_fh”的接近示例。
以下显示我们拍摄编程的步骤:
第1步
首先,我们更改了配置定义
#define development_debug 0 // 0:OTP的代码,1:通过JTAG代码
#define app_boot_from_otp.
#undef cfg_ext_sleep.
#define cfg_deep_sleep.
所有其他其他人都来自报告_FH的原始值。
,并完成了完整的构建。
第2步
打开SmartSnippets v3.6并尝试导入新编译的十六进制文件。但是,在这里我们收到以下消息:
[info @ 15-01-21 10:41:27]从file full_emb_sysram.hex中读取0字节。已忽略25356字节,因为它们的记录地址大于或等于0x80000。
要克服这个问题,我们手动将LR的地址更改为“scatterfile_common.sct”到
lr_irom1 0x00000000 0x160 {;加载区域size_region.
ER_IROM1 0x00000000 0x160 {;加载地址=执行地址
* .o(重置,+第一个)
}
}

lr_irom2 0x00000160 0x160 {
er_irom2 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,
;__散射* .o,__dc * .o,和*区域$$表
boot_vectors.o(+ Ro)
system_armcm0.o(+ ro)
; * ARMLIB *(+ RO)
.any(+ Ro)
.any(+ RW)
更改分散文件后,我们能够编译一个十六进制文件,该文件被加载到SmartSnippet并刻录到DA14580。
问题:请建议如果手动更改分散文件是为OTP生成十六进制的正确方法......或者是错误的吗?。如果是错误的话,什么是正确的程序?
第3步:
将十六进制编程到OTP后,我们配置了OTP标题:
应用标志1:是的
应用标志1:是的
DMA长度:0x000017C2
所有其他左边的原始值。
重新映射标志:SRAM在0时
JTAG启用标志:启用0x0
......
第四步:
断开JTAG,并通过USB提供电源。DA14580现在应该将OTP镜像到SRAM并开始运行Reporter_FH。但是,DA15480没有提供任何广告数据,似乎死了。
问题:请您浏览我们的步骤,并指导我们朝着正确的方向。
问题:我们在哪里可以在OTP标题上找到详细信息?旗帜的文档。
问题:如前所述在手动更改散点文件之前。这个编辑是否正确?是否有另外更正确的方法来为OTP生成十六进制?

此致,
Ciano Frost.
丹麦

ciano.
离线
最后一次露面:2周4天前
加入:2014-10-03 08:13
亲爱的对话

亲爱的对话

谢谢你的支持。
在对话支持的一些很大帮助之后,我们发现了这个问题。在Smartsnippet,我选择了错误的IC。我选择了DA14580,但我有DA14580-01。选择DA14580-01后,SmartSnippet能够加载十六进制文件,而无需更改散射文件。

再次..感谢您的支持

此致,
Ciano Frost.