对话
我将使用我的自定义板(如您的Dev Kit)刻录我的设备的OTP。(我的项目),请您提供详细的指南,包括:1)如何连接定制板和设备之间的引脚。2)如何使用智能片段(我已经成功烧毁的图像和头部的otp自定义板)。3)什么是代码/配置更改我必须在烧成OTP之前。4)如果我已成功刻录OTP,我还可以从闪存或EEPROM或SRAM等启动(通过JTAG下载)吗?
以上SDK5.0.
彼得福
嗨Achao1104,
1)请查看此论坛帖子http://support.dialog-semiconductor.com/can-you-please-provide-guides-bu..。
2)你可以在Smart Snippets帮助选项User Guide.pdf中找到关于使用Smart Snippets的信息。
3)它取决于你想做什么(OTP)如果例如你需要阅读你的nvd OTP或引导你应该定义,你以前在文章中提到过,除了DEVELOPMENT_DEBUG应该设置为0和CFG_BOOT_FROM_OTP如果你要使用OTP。此外,如果你应该#定义CFG_WDOG
4)如果您刻录了OTP应用程序标志(检查AN-B-001.PDF),则串行引导序列不会再执行,并且只有JTAG上的JTAG编程也是可能的。
由于MT_dialog
我试图在一个基于松下PAN1740的设计中使用对话串口服务,而当我直接下载我的十六进制文件到RAM时,它不工作,当我把它编程到OTP内存。因为内存是OTP(究竟为什么选择这样),我现在有两个板我不能使用,我担心的是我将继续刮板,直到我发现我做错了什么。
截至目前,我发现了对话框文档优异且非常彻底,因此缺乏应用程序注意到通过编程OTP应用程序的过程似乎是一个主要的监督,特别是给出了关于类似问题的帖子数量。
我正在使用DSPS SDK的以下项目:
项目DA1458x_DSPS \ v_5.150.2 \ \ target_apps \ \ sps_device \ Keil_5
从拼接各种其他帖子,在构建OTP的代码之前,我对项目进行了以下更改:
1 da1458x_config_basic.h: "#define CFG_DEVELOPMENT_DEBUG"替换为"// #define CFG_DEVELOPMENT_DEBUG"2 da1458x_config_advanced: "#undef CFG_BOOT_FROM_OTP"被"#define CFG_BOOT_FROM_OTP"取代
在SmartSnippets工具箱中使用Booter(v4.7.3.1690)我成功将十六进制文件下载到设备的RAM,并能够通过在手机上使用DSP应用程序连接到它来验证它是否正确运行。
然后,我在SmartSnippets工具箱中使用OTP程序员并成功下载了与设备相同的十六进制文件,但是无法在手机上使用DSPS应用程序检测设备。
我没有下载OTP标题或OTP NVDS,因为它不确定是否是强制性的,如果需要,那么我不确定我需要实际设置的内容。
因为OTP图像只是加载到RAM并从那里运行,为什么我可以直接从RAM运行十六进制文件,但不是当保存在OTP?
帮助! !
嗨richard.cunliffe,
嗯,最重要的是您无法跟踪DSPS应用程序的原因是因为您没有在OTP标题中刻录应用程序标志。为了使580要意识到应用程序存在于OTP中并且它应该从中启动,您必须刻录OTP标题顶部的两个应用程序标志(只需从智能代码段“工具中选择”是“并且该工具将刻录将指示设备应该从OTP引导的魔术号码 - 请注意,如果您这样做,如果您将不再能够使用串行引导程序启动,您只能通过串行引导JTAG)。此外,您提到的两个#defines他们与OTP引导过程本身不一定。cfg_development_debug是为了删除SDK施加的任何断言,以便帮助开发人员,因此通过拒绝此操作,您可以删除所有断言,并且在深睡眠中,您还应该拒绝它,以便设备切换RAM的设备。关于CFG_BOOT_FROM_OTP只是应用程序要么直接从OTP本身读取OTP标题的配置,或者从SYSRAM读取数据(OTP标题在引导过程中传输到SYSRAM))。
你好,我可以确认我已经设置了两个OTP应用程序标志为Yes,但由于我一直在尝试各种事情,我决定用一个新设备重新启动整个过程。
在Keil uVision IDE(首先定义CFG_DEVELOPMENT_DEBUG,然后定义它未定义)中验证了在RAM中的固件,然后我使用SmartSnippets工具箱中的Booter工具将其下载到RAM中,再次确认代码正确运行。
然后,我在SmartSnippets工具箱中使用OTP程序员将相同的十六进制文件加入OTP内存。然后我对OTP标题进行了以下更改:
1 -两个应用程序标志设置为是2 - DMA长度设置为与代码大小匹配(稍后设置为0x1FC0以指定整个OTP映像空间)。
成功下载了OTP头,然后断开Vpp和SWD连接并重新启动我的目标,但PAN1740什么也不做(应该定期输出一些数据在UART上,当我扫描蓝牙设备时设备没有显示)。
代码只是OTP存储和复制到RAM从那里跑,告诉我,如果代码正确运行时直接加载到内存,然后OTP的问题代码必须与页眉或从OTP代码的加载到内存,因为它是完全相同的代码。
我还需要设置其他的头部设置吗?
Remapping标志的作用是什么?它应该被设置为什么?
是否有详细说明所有头字段的文档?
因为我实际使用的是包含DA14580的PAN1740蓝牙模块,PAN1740制造商是否已经设置了一些Header字段?例如,我的设备上的XTAL16MHz修剪值的值是0x5BD(1469),但是在SPS项目代码的arch_system.h文件中定义的默认值是0x516(1302)。
我假设当直接下载代码到RAM时,使用默认的硬编码值,而不是来自OTP标题的代码,因此代码从RAM运行的事实,而不是从OTP运行,这可能表明了一些其他值的问题OTP标题?
我的大问题是我的项目目前处于原型阶段,因此我只有4个单位。迄今为止,我已经编程了3个单位的OTP内存,所有这些都不运行代码,所以现在我只剩下1个董事会尝试,所以我必须得到一个权利。
您是否可以使用我的十六进制文件测试到至少确认它不是错误的?我已将十六进制文件附加到预期您将能够这样做。
你好理查德,
应用程序标志是从OTP引导的唯一应该设置的东西,OTP DMA不是强制性的,因为这主要与深度睡眠模式有关。重映射标志应该保持默认值(总是在SRAM和不是OTP)。关于OTP字段和相应的字段,您将能够在智能片段帮助文档中找到信息(打开智能片段到帮助菜单,并打开用户指南),在用户指南下的“OTP Header Actions”段落。是的,一些报头字段将从松下烧毁,如唯一ID字段和XTAL设置。关于你提到的晶体值SDK将使用默认的装饰价值如果CFG_USE_DEFAULT_XTAL16M_TRIM_VALUE_IF_NOT_CALIBRATED定义如果不是它将使用OTP头的值,这是做从引导装载程序,而不是从SDK。我已经直接从SRAM运行了你的例子,我能够看到设备在发布时,fw烧毁在OTP以及。
你好!为什么重新映射标志不是OTP?
嗨vrabo,
你是什么意思 ?在OTP副本完成后,应将0重新映射到Sysram以便开始运行您刚刚镜像的代码。
嗨Achao1104,
1)请查看此论坛帖子http://support.dialog-semiconductor.com/can-you-please-provide-guides-bu..。
2)你可以在Smart Snippets帮助选项User Guide.pdf中找到关于使用Smart Snippets的信息。
3)它取决于你想做什么(OTP)如果例如你需要阅读你的nvd OTP或引导你应该定义,你以前在文章中提到过,除了DEVELOPMENT_DEBUG应该设置为0和CFG_BOOT_FROM_OTP如果你要使用OTP。此外,如果你应该#定义CFG_WDOG
4)如果您刻录了OTP应用程序标志(检查AN-B-001.PDF),则串行引导序列不会再执行,并且只有JTAG上的JTAG编程也是可能的。
由于MT_dialog
我试图在一个基于松下PAN1740的设计中使用对话串口服务,而当我直接下载我的十六进制文件到RAM时,它不工作,当我把它编程到OTP内存。因为内存是OTP(究竟为什么选择这样),我现在有两个板我不能使用,我担心的是我将继续刮板,直到我发现我做错了什么。
截至目前,我发现了对话框文档优异且非常彻底,因此缺乏应用程序注意到通过编程OTP应用程序的过程似乎是一个主要的监督,特别是给出了关于类似问题的帖子数量。
我正在使用DSPS SDK的以下项目:
项目DA1458x_DSPS \ v_5.150.2 \ \ target_apps \ \ sps_device \ Keil_5
从拼接各种其他帖子,在构建OTP的代码之前,我对项目进行了以下更改:
1 da1458x_config_basic.h: "#define CFG_DEVELOPMENT_DEBUG"替换为"// #define CFG_DEVELOPMENT_DEBUG"
2 da1458x_config_advanced: "#undef CFG_BOOT_FROM_OTP"被"#define CFG_BOOT_FROM_OTP"取代
在SmartSnippets工具箱中使用Booter(v4.7.3.1690)我成功将十六进制文件下载到设备的RAM,并能够通过在手机上使用DSP应用程序连接到它来验证它是否正确运行。
然后,我在SmartSnippets工具箱中使用OTP程序员并成功下载了与设备相同的十六进制文件,但是无法在手机上使用DSPS应用程序检测设备。
我没有下载OTP标题或OTP NVDS,因为它不确定是否是强制性的,如果需要,那么我不确定我需要实际设置的内容。
因为OTP图像只是加载到RAM并从那里运行,为什么我可以直接从RAM运行十六进制文件,但不是当保存在OTP?
帮助! !
嗨richard.cunliffe,
嗯,最重要的是您无法跟踪DSPS应用程序的原因是因为您没有在OTP标题中刻录应用程序标志。为了使580要意识到应用程序存在于OTP中并且它应该从中启动,您必须刻录OTP标题顶部的两个应用程序标志(只需从智能代码段“工具中选择”是“并且该工具将刻录将指示设备应该从OTP引导的魔术号码 - 请注意,如果您这样做,如果您将不再能够使用串行引导程序启动,您只能通过串行引导JTAG)。此外,您提到的两个#defines他们与OTP引导过程本身不一定。cfg_development_debug是为了删除SDK施加的任何断言,以便帮助开发人员,因此通过拒绝此操作,您可以删除所有断言,并且在深睡眠中,您还应该拒绝它,以便设备切换RAM的设备。关于CFG_BOOT_FROM_OTP只是应用程序要么直接从OTP本身读取OTP标题的配置,或者从SYSRAM读取数据(OTP标题在引导过程中传输到SYSRAM))。
由于MT_dialog
你好,
我可以确认我已经设置了两个OTP应用程序标志为Yes,但由于我一直在尝试各种事情,我决定用一个新设备重新启动整个过程。
在Keil uVision IDE(首先定义CFG_DEVELOPMENT_DEBUG,然后定义它未定义)中验证了在RAM中的固件,然后我使用SmartSnippets工具箱中的Booter工具将其下载到RAM中,再次确认代码正确运行。
然后,我在SmartSnippets工具箱中使用OTP程序员将相同的十六进制文件加入OTP内存。然后我对OTP标题进行了以下更改:
1 -两个应用程序标志设置为是
2 - DMA长度设置为与代码大小匹配(稍后设置为0x1FC0以指定整个OTP映像空间)。
成功下载了OTP头,然后断开Vpp和SWD连接并重新启动我的目标,但PAN1740什么也不做(应该定期输出一些数据在UART上,当我扫描蓝牙设备时设备没有显示)。
代码只是OTP存储和复制到RAM从那里跑,告诉我,如果代码正确运行时直接加载到内存,然后OTP的问题代码必须与页眉或从OTP代码的加载到内存,因为它是完全相同的代码。
我还需要设置其他的头部设置吗?
Remapping标志的作用是什么?它应该被设置为什么?
是否有详细说明所有头字段的文档?
因为我实际使用的是包含DA14580的PAN1740蓝牙模块,PAN1740制造商是否已经设置了一些Header字段?例如,我的设备上的XTAL16MHz修剪值的值是0x5BD(1469),但是在SPS项目代码的arch_system.h文件中定义的默认值是0x516(1302)。
我假设当直接下载代码到RAM时,使用默认的硬编码值,而不是来自OTP标题的代码,因此代码从RAM运行的事实,而不是从OTP运行,这可能表明了一些其他值的问题OTP标题?
我的大问题是我的项目目前处于原型阶段,因此我只有4个单位。迄今为止,我已经编程了3个单位的OTP内存,所有这些都不运行代码,所以现在我只剩下1个董事会尝试,所以我必须得到一个权利。
您是否可以使用我的十六进制文件测试到至少确认它不是错误的?我已将十六进制文件附加到预期您将能够这样做。
你好理查德,
应用程序标志是从OTP引导的唯一应该设置的东西,OTP DMA不是强制性的,因为这主要与深度睡眠模式有关。重映射标志应该保持默认值(总是在SRAM和不是OTP)。关于OTP字段和相应的字段,您将能够在智能片段帮助文档中找到信息(打开智能片段到帮助菜单,并打开用户指南),在用户指南下的“OTP Header Actions”段落。是的,一些报头字段将从松下烧毁,如唯一ID字段和XTAL设置。关于你提到的晶体值SDK将使用默认的装饰价值如果CFG_USE_DEFAULT_XTAL16M_TRIM_VALUE_IF_NOT_CALIBRATED定义如果不是它将使用OTP头的值,这是做从引导装载程序,而不是从SDK。我已经直接从SRAM运行了你的例子,我能够看到设备在发布时,fw烧毁在OTP以及。
由于MT_dialog
你好!
为什么重新映射标志不是OTP?
嗨vrabo,
你是什么意思 ?在OTP副本完成后,应将0重新映射到Sysram以便开始运行您刚刚镜像的代码。
由于MT_dialog