ljwcoke 发表于 2018-7-23 21:11:06

求助各位兄弟 USB HID程序 KEIL移植IAR 程序不能正常运行

测试芯片:stm32f103c8t6 和 stm32f103zet6
这是一个KEIL的USB HID程序,源程序能正常运行
移植IAR后,程序不能正常运行,在线仿真发现程序卡死在usb_pwr.c 的 第71行   return USB_SUCCESS;
KEIL和IAR编译均0错误 0警告

usb_pwr.c部分程序如下:

RESULT PowerOn(void)
{
#ifndef STM32F10X_CL
u16 wRegVal;

/*** cable plugged-in ? ***/
USB_Cable_Config(ENABLE);

/*** CNTR_PWDN = 0 ***/
wRegVal = CNTR_FRES;
_SetCNTR(wRegVal);

/*** CNTR_FRES = 0 ***/
wInterrupt_Mask = 0;
_SetCNTR(wInterrupt_Mask);
/*** Clear pending interrupts ***/
_SetISTR(0);
/*** Set interrupt mask ***/
wInterrupt_Mask = CNTR_RESETM | CNTR_SUSPM | CNTR_WKUPM;
_SetCNTR(wInterrupt_Mask);
#endif /* STM32F10X_CL */

return USB_SUCCESS;//程序在这里卡死
}

枚举:typedef enum _RESULT
{
USB_SUCCESS = 0,    /* Process successfully */
USB_ERROR,
USB_UNSUPPORT,
USB_NOT_READY       /* The process has not been finished, endpoint will be
                         NAK to further request */
} RESULT;



附件是KEIL和IAR两个版本打包

x5y4z3 发表于 2018-7-24 09:18:00

程序是否访问到指定区域之外去了?!

ljwcoke 发表于 2018-7-24 11:14:47

其实也不是return返回死掉 像是定时死 断点打在return下一句 也能到 然后就死掉了前面有一个步骤是复位14脚 14脚正好是SWD的TCK 应该没有影响吧 KEIL都能过


x5y4z3 发表于 2018-7-25 09:54:44

依楼主描述又有点像是 Stack Overflow 了!
楼主您要不看一下,于 Keil 上的那个 Staerup 内有配置如 Stack Size 的地方,先找个小程序如 Hello Word 等来试试?!
再不就是函数重入的问题!最后还有找个程序看一下那 Big Endian or Little Endian 等问题了,这些都是可以测出来的。
另本人才疏学浅,也没用过 IAR。若最后非此所述造成上请楼主及各位谅解。我是抱着纯回复来取积分的!哈~

ljwcoke 发表于 2018-7-25 14:09:04

x5y4z3 发表于 2018-7-25 09:54
依楼主描述又有点像是 Stack Overflow 了!
楼主您要不看一下,于 Keil 上的那个 Staerup 内有配置如 Stack ...

首先谢谢你提供的思路,IAR的堆栈设置比KEIL里大 整个程序也没什么变量,没有很多数据,
论坛看了下KEILSTM32 默认是小端模式和IAR一样的:):):)   这个问题真的我点思路都没有

ljwcoke 发表于 2018-7-25 16:06:58

这是什么意思呢??

ljwcoke 发表于 2018-7-25 16:45:08

硬件错误在给 uint32_t 赋值??? 请问到底是怎么回事呢?


x5y4z3 发表于 2018-7-26 11:59:18

本帖最后由 x5y4z3 于 2018-7-27 10:23 编辑

ljwcoke 发表于 2018-7-25 14:09
首先谢谢你提供的思路,IAR的堆栈设置比KEIL里大 整个程序也没什么变量,没有很多数据,
论坛看了下KEIL...
嗯,个人于十年前仅用过 IAR 的 MSP-430 捣鼓 Porting 了一个 uC/OS II 在 MSP-430 上跑跑玩玩。
而 IAR 其他系列的 Compiler 确实没用过,大多 Keil 能使的都用 Keil 来 Compiler 了!
建议楼主将规模弄得小一点让 IAR 编译后跑跑看,无问题再将全部曼满给加上。无论如何都祝楼主好运了。 :)

编辑原因: 最后一行输入错字,是...无问题再将全部慢慢的给加上!

页: [1]
查看完整版本: 求助各位兄弟 USB HID程序 KEIL移植IAR 程序不能正常运行