问题描述: 程序中使用了RL-RTX操作系统。之前程序都好好的,最近在程序中添加了一些代码,软件就一直重启。经过几个星期的分析、测试,发现重启是内部看门狗溢出引起的,将看门狗关了就表现为死机。
测试到的几个现象:
1、程序可以进入初始化任务,在里面创建其它任务后调用os_sem_wait程序就死了,无法切换到其它任务。
2、删除程序里面的代码,将编译后的代码删减到Program Size: Code=73392 RO-data=56116 RW-data=124 ZI-data=27884 ,软件就可以正常运行;在这个正常的软件里添加一条语句让程序Code增加4个字节(即Program Size: Code=73396 RO-data=56116 RW-data=124 ZI-data=27884 )就不能正常运行,一直重启。(在软件的不同地方添加一条语句都一样)
这是什么问题啊,感觉是不是操作系统出问题啊?有没有人有这方面的信息啊?
MDK的版本信息: IDE-Version: 礦ision3 V3.72 Tool Version Numbers: Toolchain: RealView MDK-ARM Version: 3.40 Middleware: RL-ARM Real-Time Library Version V3.24 Toolchain Path: BIN31 C Compiler: Armcc.Exe V3.1.0.942 Assembler: Armasm.Exe V3.1.0.942 Linker/Locator: ArmLink.Exe V3.1.0.942 Librarian: ArmAr.Exe V3.1.0.942 Hex Converter: FromElf.Exe V3.1.0.942 CPU DLL: SARM.DLL V3.40 Dialog DLL: DARMST.DLL V1.12 Target DLL: BINUL2ARM.DLL V1.44 Dialog DLL: TARMST.DLL V1.12
STR710FZ2芯片信息:
ARM7TDMI based High-performance 32-bit RISC Microcontroller with Thumb extensions, Fully Programmable External Memory Interface, PLL, CAN compliant with CAN V2.0 part B, full-speed USB interface V2.0, Realtime Clock (RTC), 4 UARTs, 4 Timers, SmartCard Interface, Buffered Serial Peripheral Interfaces (BSPI), 2 I2C Interfaces, HDLC interface, 12-bit A/D Converter, WDT, 48 I/O Pins, up to 14 External Interrupts, 256+16 kBytes Flash ROM, 64 kBytes internal RAM, up to 64MB Address Space in 4 Banks
|