问题:调试时转到“HardFault\u HandlerC”

28帖/ 0新
最后发表
普雷姆库马尔。
离线
最后一次露面:5年6个月前
加入:2015年12月16日05:45
问题:调试时转到“HardFault\u HandlerC”

我正在DA14583DEVKT-B板上使用SDK 5.0.3软件。
我采用了“ble_应用程序_外围设备”(给出了ble示例项目)。
控制将要“HardFault_HandlerC()”而执行函数“app_dis_init()”。
“app_dis_init()”中只有“return”指令。
我无法确定为什么它将在执行“app_dis_init()”函数时进入异常处理程序。
如果我评论“app_dis_init()”函数,它不会去异常处理程序,我能够看到移动设备上的设备名称。

请帮我解决这个问题。
请找到供大家参考所附的截屏

设备:
MT_dialog
离线
最后一次露面:7个月2天前
工作人员
加入:2015-06-08 11:34
嗨Premkumar,

嗨Premkumar,

您是否对app_dis_init()进行了任何更改?您能否尝试按原样下载示例项目,以检查是否发生相同的事件?

由于MT_dialog

普雷姆库马尔。
离线
最后一次露面:5年6个月前
加入:2015年12月16日05:45
你好

你好
我以一些项目为例(包括“Blinky”和“ble_app_peripheral”)。这两个项目正在Keil进行。
我已经通过使用makefile和GCC完成了eclipse的设置。它正在为“Blinky”项目工作。
但对于“ble_app_peripheral”,它显示了关于内存以下链接错误,并且还附加文档,以供参考。
1.__exe / Dialog_DA14583。axf节”。constdata'将不适合区域' RAM_IROM4'
2.在[200004402000552F]加载的截面ER_IROM5与在[200003E420005EB]加载的截面重叠
3.区域' RAM_IROM4'溢出428字节。

链接器脚本文件中的内存部分:
OTP(R):ORIGIN = 0x00040000,LENGTH =为0x8000
RETENTION_RAM2 (rw): ORIGIN = 0x00080768, LENGTH = 0x2968
RAM_IROM1 (rwx): ORIGIN = 0x20000000, LENGTH = 0x0160
RAM_IROM2(RWX):ORIGIN = 0x20000160,LENGTH = 0x0160
RAM_IROM3 (rwx): ORIGIN = 0x200002C0, LENGTH = 0x0080
RAM_IROM4 (rwx): ORIGIN = 0x20000340, LENGTH = 0x0100
RAM_IROM5(RWX):ORIGIN = 0x20000440,长度= 0x7AC0
RAM_RW_IRAM51 (rw): ORIGIN = (0x20009000 - (1024 + 12)), LENGTH = (1024 + 12)
RAM_RW_IRAM52(R):ORIGIN = 0x20009000,LENGTH = 0×0020
RAM_RW_IRAM53 (rw): ORIGIN = 0x20009020, LENGTH = 0x01E0
RAM_RW_IRAM54(RW):原点=0x20000200,长度=0x0600

我使用的是DA14583DEVKT-B。如果我在链接器脚本中更改内存范围(如下所示),则可以生成目标文件,但代码不起作用。
OTP(R):ORIGIN = 0x00040000,LENGTH =为0x8000
RETENTION_RAM2 (rw): ORIGIN = 0x00080768, LENGTH = 0x2968
RAM_IROM1 (rwx): ORIGIN = 0x20000000, LENGTH = 0x0160
RAM_IROM2(RWX):ORIGIN = 0x20000160,LENGTH = 0x0160
RAM_IROM3 (rwx): ORIGIN = 0x200002C0, LENGTH = 0x0080
RAM_IROM4(RWX):ORIGIN = 0x20000340,LENGTH = 0x0300
RAM_IROM5(RWX):ORIGIN = 0x20000640,长度= 0x7AC0
RAM_RW_IRAM51 (rw): ORIGIN = (0x20009000 - (1024 + 12)), LENGTH = (1024 + 12)
RAM_RW_IRAM52(R):ORIGIN = 0x20009000,LENGTH = 0×0020
RAM_RW_IRAM53 (rw): ORIGIN = 0x20009020, LENGTH = 0x01E0
RAM_RW_IRAM54(RW):原点=0x20000200,长度=0x0600

请帮我解决这个问题。
我在keil中看到了“sysram_case23.ini”,这个.ini文件的意义是什么?
任何证明文件,这将帮助我解决内存问题和设立蚀。

附件:
ankitdaf
离线
最后一次露面:3年2个月前
加入:2015年9月3日20:14
嗨Premkumar

嗨Premkumar

我试图做同样的,面对类似的东西。我能到这儿来,但现在面临的其他问题。你在比较笔记有兴趣吗?它可以帮助我们双方取得进展,让一切和运行

你说什么?

MT_dialog
离线
最后一次露面:7个月2天前
工作人员
加入:2015-06-08 11:34
嗨Premkumar,

嗨Premkumar,

抱歉,但是目前da14580只支持keil,不支持eclipse。请检查doc AN-B-024.pdf,也许你会发现它有用。

坦斯克山对话

普雷姆库马尔。
离线
最后一次露面:5年6个月前
加入:2015年12月16日05:45
你好

你好
我已经在keil uVision中采用了示例BLE外围代码。我不知道在哪里需要修改应用代码才能从DA14583DEVKT-B将数据(即一些字节的信息)发送到移动应用。能否提供任何文件来理解如何更改应用。目前我在DA14583DEVKT-B板上使用SDK 5.0.3软件。
请提供SDK 5.0.3的软件指南文档。

MT_dialog
离线
最后一次露面:7个月2天前
工作人员
加入:2015-06-08 11:34
嗨Premkumar,

嗨Premkumar,

该app_ble_peripheral,为了与移动应用程序进行交互使用自定义配置文件。如果你想从你有指示它从你的手机周边设备发送数据(意思读取特性或特征的配置写入发送通知或指示)。当所有通过适当的特征指示,被称为处理程序位于user_custs1_impl.c。例如,在指定的项目中的功能user_custs1_ctrl_wr_ind_handler()当CUST1_IDX_CONTROL_POINT_VAL特性被写入如果写入(由中央发送)的值不为0,则固件启动软件计时器被调用。当定时器经过发送通知(更新CUST1_IDX_ADC_VAL_1_VAL的值),该通知是由中央接收仅当通知由中央启用。关于SDK5和例子更多信息可以在UM-B-050.pdf被发现。

由于MT_dialog

普雷姆库马尔。
离线
最后一次露面:5年6个月前
加入:2015年12月16日05:45
你好

你好
我在“jump_table.c”文件中观察到jump_table_base[](数组)。这个数组的用途是什么(即jump_table_base[])。
编译app_ble_外围项目时创建的临时文件。为什么要创建这些临时文件。
附件是地图文件的屏幕截图,里面显示的是临时文件。

请提供有关跳转表概念和“rom_symdef.txt”用途的信息

普雷姆库马尔。
离线
最后一次露面:5年6个月前
加入:2015年12月16日05:45
你好

你好
我无法访问论坛中提供的UM-B-050.pdf的链接。
请帮我找到um - b . 050.pdf。

MT_dialog
离线
最后一次露面:7个月2天前
工作人员
加入:2015-06-08 11:34
嗨Premkumar,

嗨Premkumar,

关于跳台,请看一下这篇文章http://support.dialog-semiconductor.com/jumptablebase88关于跳表,其用法主要是在ROM overide功能,如果你想例如ROM代码不使用默认的函数(一个位于跳表),您可以实现自己的功能在RAM和ROM overide函数通过跳表,这个rom_sym_def.txt文件包含所有位于ROM内存中的函数符号。我不知道在eclipse中创建的文件。

如果您试图访问该文件,那么您应该已经接受并提交了使用软件和文件的条款和条件。管理员需要几天的时间才能扩大您对这些文档的访问权限。耐心一点,你的访问权限就会扩大。

由于MT_dialog

普雷姆库马尔。
离线
最后一次露面:5年6个月前
加入:2015年12月16日05:45
你好

你好
我不能能够访问UM-B-050.pdf。请访问它的链接。
也请提供链接,DA14583的用户手册。

MT_dialog
离线
最后一次露面:7个月2天前
工作人员
加入:2015-06-08 11:34
嗨Premkumar,

嗨Premkumar,

您是否接受了条款和条件,当您试图下载SDK和用户手册,以获得访问许可?

由于MT_dialog

普雷姆库马尔。
离线
最后一次露面:5年6个月前
加入:2015年12月16日05:45
你好

你好
我访问过的Dialog半导体网站的链接。yabo国际娱乐我还没有发现任何条款和导航时的条件。只是我发现订阅的左侧按钮。我已经订阅了点。请找到供您参考所附文件。

我可能没有访问权的链接。请给我提供的链接来访问UM-B-050.pdf和DA14583的说明书(即参考手册)。请您简单给我提供访问文档的过程。

MT_dialog
离线
最后一次露面:7个月2天前
工作人员
加入:2015-06-08 11:34
嗨Premkumar,

嗨Premkumar,

程序非常简单,只需单击要访问的链接,如果您的访问权限被授予,则可以查看文档;如果您的访问权限未被授予,则应显示“条款和条件”对话框。接受此请求后,您的请求将通过管理员,以允许您访问门户(此过程需要几天时间)。请检查以下文档的链接。目前我们的系统中没有请求。尝试访问我提供的链接,并检查是否可以下载文档。

HTTP://support.dialog-semiconductor.com/resource/um-b-050-da1458x-softwa ...

http://support.dialog-semiconductor.com/resource/da14583-datasheet

由于MT_dialog

普雷姆库马尔。
离线
最后一次露面:5年6个月前
加入:2015年12月16日05:45
你好

你好
在第二个链接中,我可以看到Datasheet.pdf链接,也可以打开pdf。但在点击第一个链接后,它显示的页面如附件所示。它没有显示任何条款和条件。

也请帮我拿到第一个链接的权限

JE_Dialog
离线
最后一次露面:3个月3个星期前
工作人员
加入:2013-12-05 14:02
嗨,普雷姆库马尔,你能去吗

你好,Premkumar,你可以去DA14580产品,软件和工具,并点击挂锁图标旁边的SDK或其发布说明(顶部项目)。这将打开SDK访问请求。

BR JE_Dialog

普雷姆库马尔。
离线
最后一次露面:5年6个月前
加入:2015年12月16日05:45
你好

你好
我使用的Keil uVision(MDK-精简版,试用版)对DA14583DEVKT-B板的工作。在调试时,我无法看到调试窗口的外围设备和所有特殊功能寄存器(包括I2C)。而且还不能使用逻辑分析仪来查看端口引脚上的逻辑变化。

请给出信息,我如何使用特殊的函数寄存器来调试I2C。

MT_dialog
离线
最后一次露面:7个月2天前
工作人员
加入:2015-06-08 11:34
嗨,普雷穆卡,

嗨,普雷穆卡,

我们没有为580提供一个带有注册映射/系统查看器的.srf文件。但我想你可以通过记忆窗口看到你的记录。

由于MT_dialog

普雷姆库马尔。
离线
最后一次露面:5年6个月前
加入:2015年12月16日05:45
你好

你好
我可以通过内存窗口中看到的寄存器。我希望写I2C驱动程序。截至目前EEPROM驱动程序是可用的,但需要进行编辑与其他IC的(即IC的具有I2C接口)接口。

我能够发送奴隶地址和写位在I2C线。但是我不能在I2C线路上发送任何数据字节。

以下说明不会对“I2C_DATA_CMD_REG”寄存器(即位置0x50001310)产生任何影响
发送I2C命令(0x01AA);//将R/W位设置为1(读取访问)

SEND_I2C_COMMAND(0xD0);
执行上述指令后,我看不到“I2C_DATA_CMD_REG”寄存器值的任何变化

请帮我解决这个问题。请分享是否有任何通用I2C驱动程序可用于dailog(用于读写操作)。

请提供任何文件,了解I2C在对话框中的工作情况,以了解FIFO。

MT_dialog
离线
最后一次露面:7个月2天前
工作人员
加入:2015-06-08 11:34
嗨,普雷姆库马尔,

嗨,普雷姆库马尔,

除了eeprom驱动外,580没有任何其他官方I2C驱动,但在论坛上一些相关的I2C帖子上有关于驱动如何操作的广泛解释。请查看以下链接。

http://support.dialog-semiconductor.com/multiple-byte-read-i2c

http://support.dialog-semiconductor.com/documentation

由于MT_dialog

普雷姆库马尔。
离线
最后一次露面:5年6个月前
加入:2015年12月16日05:45
你好

你好
我不能使用flash来保存我的应用程序代码。
目前,“scatterfile_common.sct”只包含有限的内存范围。我认为这是只映射到RAM区(42KB,从0x20000000开始)。
请提供不同内存区域(ROM, OTP, System SRAM, Retention ram and Flash)的基址信息

任何我需要改变的分散文件或内存部分地址在keil,以使用ROM和Flash(即1mbit)区域。

请指导我用不同的内存部分按要求。

MT_dialog
离线
最后一次露面:7个月2天前
工作人员
加入:2015-06-08 11:34
嗨Premkumar,

嗨Premkumar,

您可以在文档UM-B-011:用户手册- DA14580内存映射和分散文件中的580和分散文件信息中找到所需的基址信息。

由于MT_dialog

普雷姆库马尔。
离线
最后一次露面:5年6个月前
加入:2015年12月16日05:45
你好

你好
我已经阅读了文档UM-B-011,但是没有关于如何使用DA14583中可用的1Mbit闪存和OTP的信息。
DA1458x的数据表中未提供引导顺序。请共享文档以了解引导顺序。

请帮我用flash写我的申请和OTP

MT_dialog
离线
最后一次露面:7个月2天前
工作人员
加入:2015-06-08 11:34
嗨,普雷穆卡,

嗨,普雷穆卡,

您可以在UM-B-012创建辅助引导加载程序第5节中看到14583的引导顺序。示例项目与使用da14583兼容,您只需要使用583选项来构建它们。您可以使用智能片段与14583以及烧录Flash,只是确保选择正确的SPI引脚配置(选择14583应该选择正确的引脚,但您也可以检查从板设置所选的引脚)。如果您想与flash进行交互,可以看一下接近示例,其中使用了SUOTA配置文件来初始化、启用内部flash并与之进行交互。使用14583的内部闪光灯不需要一个特殊的驱动器,只要正确的引脚。

由于MT_dialog

普雷姆库马尔。
离线
最后一次露面:5年6个月前
加入:2015年12月16日05:45
你好

你好
我试着把负载blinky.hex到嵌入式SPI闪存使用智能片段工具。我能够连接,但不能降负荷的应用程序代码到嵌入式SPI闪存。

我收到以下消息,同时连接:
[INFO @ 16-02-18 17时十二分36秒]开始下载过程...
[ACTION@16-02-18 17:12:37]请按主板上的硬件重置按钮开始下载过程。
[INFO @16-02-18 17:12:40]已检测到复位
[INFO@16-02-18 17:12:42]已成功从端口COM12断开连接。
[INFO @ 16-02-18十七时12分42秒]连接到COM12端口已经成功地打开。
[INFO@16-02-18 17:12:42]已成功从端口COM12断开连接。
[INFO @16-02-18 17:12:42]成功下载固件文件到单板。
[INFO @16-02-18 17:12:42]成功配置SPI Flash接口和引脚。

请给出需要遵循的程序步骤下载应用程序图像到嵌入式SPI flash。
我不能做任何操作,如烧伤和擦除的Flash。智能代码片段显示错误消息,同时启动刻录和擦除操作。

无论我需要down下来加载之前加载任何二进制文件(辅助引导装载程序或flash_programmer)应用图像到嵌入式SPI闪存。
请给有关分步过程的信息,使在正常模式下工作(即运行从闪存的应用程序)。这个问题阻拦我们不动,取得进一步进展。

我们是否可以再次重新编程OTP区域覆盖在OTP区现有二级引导装载程序。

请找到供您参考所附文件。

MT_dialog
离线
最后一次露面:7个月2天前
工作人员
加入:2015-06-08 11:34
嗨,普雷穆卡,

嗨,普雷穆卡,

确保连接了正确的UART引脚,以便智能代码段将flash编程器下载到您的设备上。同时确保从线路板设置部分选择了正确的SPI引脚。打开Smart Snippets后,您应该选择芯片的14583版本,这应该选择适当的SPI引脚(尽管您应该在电路板设置中明确检查引脚)。之后,选择SPI选项卡,按connect(以便闪存编程器下载到芯片中),然后擦除SPI闪存(无法擦除或刻录闪存的最可能原因是引脚选择-应在线路板设置中选择2_0、2_3、2_4、2_9)。不需要下载任何二进制文件来刻录flash Smart代码段,它将在连接过程中下载。

由于MT_dialog

普雷姆库马尔。
离线
最后一次露面:5年6个月前
加入:2015年12月16日05:45
你好

你好
是否可以多次写入OTP区域。

MT_dialog
离线
最后一次露面:7个月2天前
工作人员
加入:2015-06-08 11:34
嗨Premkumar,

嗨Premkumar,

你不能多次燃烧OTP, OTP代表一次可编程,你只能将位从0翻转到1。

由于MT_dialog