固件崩溃当发送写没有反应

14个新帖子/ 0
最后发表
gcblair
离线
最后看到:5年1月前
主
加入:2014-09-08 21
固件崩溃当发送写没有反应

你好,

我想发送一些数据从一个平板电脑给我们的固件使用写没有反应。
当我发送1200字节以上固件崩溃。调试器停止,所有的核心寄存器设置为0,callstack是空的

我们要做的是,我们发送200字节,然后阅读特点告诉我们如果数据好不好。然后我们发送下一个200字节。
我不能看到任何寄存器或处理程序能帮我调试的情况。

知道如何调试或修复它吗?我们在我们的项目正处于一个关键时期。

布莱恩
离线
最后看到:6年5个月前
专家 主
加入:2014-10-16 18:10
你在Windows 8吗?我得到

你在Windows 8吗?我得到同样的行为,但出于不同的原因。我相信这是由于STRH指示对齐内存。这应该引起hardfault而不是一个完整的重置崩溃和Windows 7我工作时得到hardfault。是的编译器应该对齐内存,但出现问题。

gcblair
离线
最后看到:5年1月前
主
加入:2014-09-08 21
我在windows 8是的。它是

我在windows 8是的。这是一个严重的问题,因为对我来说是不可能的调试。我有是问题的唯一信息是一致的。
我可以试着找到一个windows 7的机器,但是你为什么认为我没有hardfault windows 8 ?有那么多区别它们呢?

gcblair
离线
最后看到:5年1月前
主
加入:2014-09-08 21
所以我试着windows 7,

所以我试着windows 7,一模一样的结果!

布莱恩
离线
最后看到:6年5个月前
专家 主
加入:2014-10-16 18:10
很抱歉听到这个消息。这是

很抱歉听到这个消息。这只是一个猜测,因为这就是我。但是,我不明白。但我肯定熟悉问题!是绝对没有办法我发现调试。就我而言我有DA14580连接Tera术语,当错误发生时我得到一堆垃圾被打印到屏幕上;就像一个人之前上传十六进制文件。我没有发生在Windows 7,但那是我的案件显然是发生在系统初始化(之前到达app_init ())。显然你是启动和运行。我不得不说有时我得到hardfault在Windows 8。 Small changes in the organization of this struct make a big difference.

这是其他东西你可以看看。我认为你有一些缓冲,写数据。检查/ lst目录的地图。是否加载之前跳表或别的arch_main的关键。

首先寻找这样的一条线
rwip_rf 0 0 rom_symdef x0008071c数据。txt绝对

现在找你的数组。在我的情况下,结构我玩之前加载系统中这些关键任务项。即使是正确的大小,如果它被错误的灾难可能发生(显然)保持一致。缺点是我无法控制的系统负载的位置我的数组。我也在内存耗尽的边缘(我写一个完全托管中心)。如果缓冲区(假设你有一个)坐落在一些关键的像堆跳表,看看你能不能坚持一个较小的缓冲区之间的缓冲区,表。你需要使用一些缓冲或编译器会优化出来(除非你是在优化级别0)。

我不是说这将解决任何问题,但它值得一试的其他选项(不知道要做什么)。

gcblair
离线
最后看到:5年1月前
主
加入:2014-09-08 21
布莱恩,

布莱恩,

这事情,我没有缓冲来自堆栈。数据来自gattc_write_cmd_ind_handler直接从堆栈并使用attmdb_att_set_value我将其保存到数据库。
我不使用我的缓冲区在这个过程。
布赖恩谢谢你的帮助,希望有人从对话框可以或许做了一些阐述。我猜SUOTA他们使用相同的方法

AK_Dialog
离线
最后看到:6个月5天前
工作人员
加入:2013-12-16 15:49
你好,

你好,

这也许是由于这一事实DA14580进入睡眠模式或看门狗定时器跳跃。

你用睡眠模式?是使用的监督?

对话框蓝牙支持团队。

gcblair
离线
最后看到:5年1月前
主
加入:2014-09-08 21
你好,

你好,

监管机构和扩展和深度睡眠模式都是禁用的。

AK_Dialog
离线
最后看到:6个月5天前
工作人员
加入:2013-12-16 15:49
你好,如果你看看我们的代码

你好,如果你看看我们的代码你可以看到用于调试目的敝中断处理程序(nmi_handler.c)和Harfault处理程序(hardfault_handler.c)将把手臂寄存器(包括PC和SP)在内存中。“崩溃”后你可以atach调试器和调查“最后”的状态。

对话框蓝牙支持团队。

gcblair
离线
最后看到:5年1月前
主
加入:2014-09-08 21
它与调试器崩溃

它与调试器连接崩溃。
Hardfaults不叫,所有的寄存器都是空白的,包括电脑。
我需要尽快为客户工作所以很高兴给你方寄去我方固件和android代码如果有帮助

gcblair
离线
最后看到:5年1月前
主
加入:2014-09-08 21
你好,

你好,

我怀疑这是一个栈的问题所以我增加BLE_CONNECTION_MAX_USER 2将增加堆栈(#定义NON_RET_HEAP_SIZE #定义ENV_HEAP_SIZE #定义MSG_HEAP_SIZE)

我可以发送我的数据没有崩溃。
但是如果我我发送3200字节的数据量的两倍,当然它崩溃。很明显在栈内存问题
我说过在我原来的文章,我读的特点后每个200字节,以确保数据已写的所以我不能明白为什么应该有任何堆栈溢出问题。

你能帮助吗?

gcblair
离线
最后看到:5年1月前
主
加入:2014-09-08 21
你好,

你好,

我怎样才能帮助解决这个问题吗?它已经5天,唯一响应从你已经检查我已经告诉过你在我原来的职位。

gcblair