共2条
1/1 1 跳转至页
uCOS,II 只有两个任务的uCOS-II程序
问
我仿照LPC2100中的例子编了一个只有两个任务的uCOS-II程序,结构如下:
int main(void){
OSInit();
OSTaskCreate(TaskStart, (void *)0, &TaskStartStk[TASK_STK_SIZE - 1], 0);
OSStart();
return 0;
}
void TaskStart(void *pdata ) {
初始化;
OSTaskCreate(Task, (void *)0, &TaskStk[TASK_STK_SIZE - 1], 10);
while(1){
}
}
void Task(void *pdata ) {
初始化;
while(1){
}
}
但得到如下错误:
Error : C3028E: <argument 3 to 'OSTaskCreate'>: implicit cast of pointer to non-equal pointer test.c line 407 错误语句为TaskStart()中的OSTaskCreate()。
请问是什么原因?
多谢
答 1: 没有强制转换参数TaskStartStk的数据类型TaskStartStk是OS_STK类型的数组,所以在取地址运算之后还必须强制转换为指向OS_STK类型的指针:
OSTaskCreate(TaskStart, (void *)0, (OS_STK *)&TaskStartStk[TASK_STK_SIZE - 1], 0); 答 2: 是不是Task是关键字呢?哈哈,不太清楚
int main(void){
OSInit();
OSTaskCreate(TaskStart, (void *)0, &TaskStartStk[TASK_STK_SIZE - 1], 0);
OSStart();
return 0;
}
void TaskStart(void *pdata ) {
初始化;
OSTaskCreate(Task, (void *)0, &TaskStk[TASK_STK_SIZE - 1], 10);
while(1){
}
}
void Task(void *pdata ) {
初始化;
while(1){
}
}
但得到如下错误:
Error : C3028E: <argument 3 to 'OSTaskCreate'>: implicit cast of pointer to non-equal pointer test.c line 407 错误语句为TaskStart()中的OSTaskCreate()。
请问是什么原因?
多谢
答 1: 没有强制转换参数TaskStartStk的数据类型TaskStartStk是OS_STK类型的数组,所以在取地址运算之后还必须强制转换为指向OS_STK类型的指针:
OSTaskCreate(TaskStart, (void *)0, (OS_STK *)&TaskStartStk[TASK_STK_SIZE - 1], 0); 答 2: 是不是Task是关键字呢?哈哈,不太清楚
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【开发板试用-NUCLEO-U575ZI-Q】定时器中断实现板载LED点亮被打赏50分 | |
分享技术笔记五被打赏50分 | |
【STM32H7S78-DK评测】LTDC Color Key功能验证被打赏50分 | |
请大声喊出:我要开发板!---使用esp32驱动AD7606C-18被打赏50分 | |
分享技术笔记四被打赏50分 | |
【STM32H7S78-DK评测】LCD显示功能配置被打赏50分 | |
为什么FPGA属于硬件,还需要搞算法?被打赏50分 | |
【STM32H7S78-DK评测】基础环境搭建之FreeRTOS适配被打赏50分 | |
买了一个RaspberryPiPico2试玩被打赏100分 | |
分享技术笔记三被打赏50分 |