硬汉嵌入式论坛

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

[Ozone] 在Ozone里一调用RTT输出就报错

[复制链接]

1

主题

3

回帖

6

积分

新手上路

积分
6
发表于 7 天前 | 显示全部楼层 |阅读模式
如题:

芯片STM32F411CEU6,用STM32CubeMX创建工程后移植SEGGER RTT,但是在第一次调用SEGGER_RTT_printf后报错。错误信息HardFault,由BusFault升级而来。但是在keil中调试却没有这个问题,也能正常运行,但是在Ozone中就是不能调试。有人遇到过这个问题吗?


int SEGGER_RTT_printf(unsigned BufferIndex, const char * sFormat, ...) {
  int r;
  va_list ParamList;

  va_start(ParamList, sFormat);
  【-调试信息1】r = SEGGER_RTT_vprintf(BufferIndex, sFormat, &ParamList);
  va_end(ParamList);
  
  return r;
}



【-调试信息2】int SEGGER_RTT_vprintf(unsigned BufferIndex, const char * sFormat, va_list * pParamList) {
  char c;
  SEGGER_RTT_PRINTF_DESC BufferDesc;
  int v;
  unsigned NumDigits;
  unsigned FormatFlags;
  unsigned FieldWidth;
  char acBuffer[SEGGER_RTT_PRINTF_BUFFER_SIZE];


再下一步是【调试信息3】就报错了
Ozone1.png
Ozone2.png

调用栈信息1

调用栈信息1

调用栈信息2

调用栈信息2

调用栈信息3

调用栈信息3
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
119429
QQ
发表于 7 天前 | 显示全部楼层
帮顶,Ozone下没测试过,Embedded Studio上测试过,没问题。
回复

使用道具 举报

1

主题

3

回帖

6

积分

新手上路

积分
6
 楼主| 发表于 7 天前 | 显示全部楼层
有没有ARM汇编大佬指点一下这两个指令有什么区别啊

keil生成反汇编

keil生成反汇编

Ozone生成反汇编

Ozone生成反汇编
回复

使用道具 举报

1

主题

3

回帖

6

积分

新手上路

积分
6
 楼主| 发表于 7 天前 | 显示全部楼层
eric2013 发表于 2025-11-14 16:40
帮顶,Ozone下没测试过,Embedded Studio上测试过,没问题。

我发现keil生成反汇编代码和Ozone生成的反汇编代码不一致,keil生成的代码是:VPUSH {D8} Ozone生成的代码是:VSTMDB SP!, {D8},而我的程序正是在运行到这一句之后就报错。但是我不清楚为什么会报错。
回复

使用道具 举报

1

主题

3

回帖

6

积分

新手上路

积分
6
 楼主| 发表于 4 天前 | 显示全部楼层
经过几天的测试,可以确认是VSTMDB SP!, {D8}这个代码引起的错误,询问AI,答案是这句代码和VPUSH {D8}这句代码内容上等价,但是VPUSH {D8}更加通用一些。
经过更多的测试得到一下结果:ARM AC5编译器,RTT(版本6.56)和SvstemView(版本3.58)提供的RTT输出代码不一致,源文件和头文件均有所不同,RTT原生的SEEGER_RTT_printf可完美运行不报错,但是SystemView提供的SEEGER_RTT_printf在O0优化等级下报错,在O1/O2/O3优化等级下均不报错。因为O1/O2/O3均不会使得Ozone生成VSTMDB SP!, {D8}这句代码。SvstemView提供的函数SEGGER_RTT_WriteString和函数SEGGER_RTT_Write在同样条件(AC5 优化等级O0)下不会报错。
此贴终结。

Keil O1 的Ozeone反汇编

Keil O1 的Ozeone反汇编

Keil O2 的Ozeone反汇编

Keil O2 的Ozeone反汇编

Keil O3 的Ozeone反汇编

Keil O3 的Ozeone反汇编
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-21 20:02 , Processed in 0.050257 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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