硬汉嵌入式论坛

 找回密码
 立即注册
查看: 956|回复: 5
收起左侧

[技术讨论] CANopen移植到STM32F103ZET6发成错误

[复制链接]

1

主题

3

回帖

6

积分

新手上路

积分
6
发表于 2024-8-22 18:24:02 | 显示全部楼层 |阅读模式
CANmodule);","marks":[]}]}]}],"state":{}}]">程序运行到CO_LOCK_OD这个锁,再往下运行就会进入硬件错误,我排查了不是栈溢出的问题,再也不知道为什么了
void canopen_app_interrupt(void) {    CO_LOCK_OD(CO->CANmodule);
    ......
}

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 2024-8-23 09:00:59 | 显示全部楼层
xxx.s启动文件的heap堆大小要够大。
回复

使用道具 举报

1

主题

3

回帖

6

积分

新手上路

积分
6
 楼主| 发表于 2024-8-24 11:32:14 | 显示全部楼层
我设置了堆大小A000,还是不行,还不够吗
回复

使用道具 举报

1

主题

3

回帖

6

积分

新手上路

积分
6
 楼主| 发表于 2024-8-24 11:35:24 | 显示全部楼层
eric2013 发表于 2024-8-23 09:00
xxx.s启动文件的heap堆大小要够大。

Heap size: 0xE000
Stack size: 0x1000

还是只要运行到 CO_LOCK_OD(CO->CANmodule); 就会进入 HardFault_Handler(void);
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 2024-8-25 10:39:10 | 显示全部楼层
AlexYon 发表于 2024-8-24 11:35
Heap size: 0xE000
Stack size: 0x1000

CO_LOCK_OD就是个开关中断不该死机,

干脆直接注释掉CO_LOCK_OD和CO_UNLOCK_OD的实现
回复

使用道具 举报

1

主题

3

回帖

6

积分

新手上路

积分
6
 楼主| 发表于 2024-8-26 14:24:20 | 显示全部楼层
eric2013 发表于 2024-8-25 10:39
CO_LOCK_OD就是个开关中断不该死机,

干脆直接注释掉CO_LOCK_OD和CO_UNLOCK_OD的实现

可以了!!!感谢!!!!我之前也屏蔽过试了一下,可能忘了编译直接就调试了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-12 06:32 , Processed in 0.043450 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表