您的位置:首页 > 其它

iar 4.42编译freeRTOS出错

2009-07-02 13:31 267 查看



执行语句 unsigned portSHORT usValue = ( unsigned portSHORT ) 0;时的汇编图,
执行到绿色处时,sp值为0x2000494C



该值用于
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上尝试都正确的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: