iar 4.42编译freeRTOS出错

image

执行语句 unsigned portSHORT usValue = ( unsigned portSHORT ) 0;时的汇编图,

执行到绿色处时,sp值为0x2000494C

image

该值用于

if( xQueueSend( *( ( xQueueHandle * ) pvParameters ), ( void * ) &usValue, pollqNO_DELAY ) != pdPASS )

 

中时,不能修改其值,即使如上的初始化0都不行.不知为什么是0x496c这个值,本来应该是0的呀。

xQueueSend原型是:

signed portBASE_TYPE xQueueGenericSend( xQueueHandle pxQueue, const void * const pvItemToQueue, portTickType xTicksToWait, portBASE_TYPE xCopyPosition )

即( void * ) &usValue对应于const void * const pvItemToQueue。

 

//------------------

本来以为是类型转换出了问题,但另外用函数测试没有问题,现在看到汇编指令也应该是对的呀。

该例子是freeRTOS的pollQ例子,在vc6.0和iar5.3上尝试都正确的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值