共2条
1/1 1 跳转至页
EASYARM2104 周立功EASYARM2104的问题程序

问
本人运用EASYARM2104练习ucos-ii,在main函数初始调用osinit函数,但osinit中又回到main函数的初始(osinit),程序的注解还说本程序是经过调试并在试验板上运行成功的,这不是骗钱吗!请高手帮我破解这个反复循环的错误,谢谢!
/****************************************Copyright (c)**************************************************
** 广州周立功单片机发展有限公司
** 研 究 所
** 产品一部
**
** http://www.zlgmcu.com
**
**--------------文件信息--------------------------------------------------------------------------------
**文 件 名: test.c
**创 建 人: 陈明计
**最后修改日期: 2003年7月8日
**描 述: lpc210x(飞利浦的ARM)的实时时钟使用在μCOS-II示例,在电脑显示界面上显示
** 当前时间,按板上的KEY1则设置时间到默认值
**--------------历史版本信息----------------------------------------------------------------------------
** 创建人: 陈明计
** 版 本: v1.0
** 日 期: 2003年7月8日
** 描 述: 原始版本
**
**--------------当前版本修订------------------------------------------------------------------------------
** 修改人:
** 日 期:
** 描 述:
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#include "config.h"
#define TASK_STK_SIZE 64
OS_STK TaskStartStk[TASK_STK_SIZE];
OS_STK TaskStk[TASK_STK_SIZE];
#define KEY1 (1 << 14) /* P0.14为key1 */
void TaskStart(void *data);
void Task(void *data);
/*********************************************************************************************************
** 函数名称: main
** 功能描述: c语言的主函数,由它启动多任务环境
** 输 入: 无
** 输 出: 无
** 全局变量: 无
** 调用模块: OSInit,OSTaskCreate,OSStart
**
** 作 者: 陈明计
** 日 期: 2003年7月8日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
int main (void)
{
OSInit();
OSTaskCreate(TaskStart, (void *)0, &TaskStartStk[TASK_STK_SIZE - 1], 0);
OSStart();
return 0;
}
/*********************************************************************************************************
** 函数名称: TaskStart
** 功能描述: μCOS-II的第一个任务,通常由它初始化目标板和建立其它任务
** 输 入: 无
** 输 出: 无
** 全局变量: 无
** 调用模块:
**
** 作 者: 陈明计
** 日 期: 2003年7月8日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void TaskStart(void *pdata)
{
struct time now;
struct date today;
char s[40];
pdata = pdata; /* 避免编译警告 */
TargetInit(); /* 目标板初始化 */
IODIR &= ~KEY1; /* 设置KEY1为输入*/
PINSEL0 = (PINSEL0 & 0xffff3fff); /* 管教选择模块初始化 */
OSTaskCreate(Task, (void *)0, &TaskStk[TASK_STK_SIZE - 1], 10); /* 创建任务 */
for (;;)
{
gettime(&now);
getdate(&today);
sprintf(s, "%04d-%02d-%02d %02d:%02d:%02d",
today.da_year,
today.da_mon,
today.da_day,
now.ti_hour,
now.ti_min,
now.ti_sec);
PC_DispStr(60, 23, s, DISP_FGND_YELLOW + DISP_BGND_BLUE);
OSTimeDly(OS_TICKS_PER_SEC / 2);
}
}
/*********************************************************************************************************
** 函数名称: TaskUart0Revice
** 功能描述: μCOS-II的任务
** 输 入: 无
** 输 出: 无
** 全局变量: 无
** 调用模块:
**
** 作 者: 陈明计
** 日 期: 2003年7月8日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void Task(void *pdata)
{
struct time now;
struct date today;
pdata = pdata; /* 避免编译警告 */
today.da_year = 2003;
today.da_mon = 7;
today.da_day = 8;
today.da_dow = 2;
now.ti_hour = 12;
now.ti_min = 11;
now.ti_sec = 10;
for (;;)
{
OSTimeDly(OS_TICKS_PER_SEC / 50); /* 延时20毫秒 */
if ((IOPIN & KEY1) != 0)
{
continue;
}
OSTimeDly(OS_TICKS_PER_SEC / 50); /* 延时20毫秒 */
if ((IOPIN & KEY1) != 0)
{
continue;
}
setdate(&today);
settime(&now);
getdate(&today);
gettime(&now);
today.da_year++;
now.ti_hour = (now.ti_hour + 1) % 24;
while ((IOPIN & KEY1) == 0)
{
OSTimeDly(OS_TICKS_PER_SEC / 50); /* 延时20毫秒 */
}
}
}
/*********************************************************************************************************
** End Of File
********************************************************************************************************/
;/****************************************Copyright (c)**************************************************
;** 广州周立功单片机发展有限公司
;** 研 究 所
;** 产品一部
;**
;** http://www.zlgmcu.com
;**
;**--------------文件信息--------------------------------------------------------------------------------
;**文 件 名: os_call_ARM.s
;**创 建 人: 陈明计
;**最后修改日期: 2003年6月18日
;**描 述:
;**
;**--------------历史版本信息----------------------------------------------------------------------------
;** 创建人: 陈明计
;** 版 本: V1.0
;** 日 期: 2003年6月18日
;** 描 述: 原始版
;**
;**
;**--------------当前版本修订------------------------------------------------------------------------------
;** 修改人:
;** 日 期:
;** 描 述:
;**
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
CODE32
AREA RTOS_Call,CODE,READONLY
MACRO
$FuctionName OSFuction $FuctionIndex
EXPORT $FuctionName ; 输出的标号
$FuctionName
STMFD SP!, {R0, R7, LR}
LDR R0, =$FuctionIndex
B CallFuction
MEND
CallFuction
SWI 0x40
MOV R7, R0
LDMFD SP!, {R0}
MOV LR, PC
BX R7
LDMFD SP!, {R7, PC}
OSFlagAccept OSFuction 0
OSFlagCreate OSFuction 1
OSFlagDel OSFuction 2
;OSFlagPend OSFuction 3
OSFlagPost OSFuction 4
OSFlagQuery OSFuction 5
OSMboxAccept OSFuction 6
OSMboxCreate OSFuction 7
OSMboxDel OSFuction 8
OSMboxPend OSFuction 9
OSMboxPost OSFuction 10
OSMboxPostOpt OSFuction 11
OSMboxQuery OSFuction 12
OSMemCreate OSFuction 13
OSMemGet OSFuction 14
OSMemPut OSFuction 15
OSMemQuery OSFuction 16
OSMutexAccept OSFuction 17
OSMutexCreate OSFuction 18
OSMutexDel OSFuction 19
OSMutexPend OSFuction 20
OSMutexPost OSFuction 21
OSMutexQuery OSFuction 22
OSQAccept OSFuction 23
OSQCreate OSFuction 24
OSQDel OSFuction 25
OSQFlush OSFuction 26
OSQPend OSFuction 27
OSQPost OSFuction 28
OSQPostFront OSFuction 29
OSQPostOpt OSFuction 30
OSQQuery OSFuction 31
OSSemAccept OSFuction 32
OSSemCreate OSFuction 33
OSSemDel OSFuction 34
OSSemPend OSFuction 35
OSSemPost OSFuction 36
OSSemQuery OSFuction 37
OSTaskChangePrio OSFuction 38
OSTaskCreate OSFuction 39
;OSTaskCreateExt OSFuction 40
OSTaskDel OSFuction 41
OSTaskDelReq OSFuction 42
OSTaskResume OSFuction 43
OSTaskSuspend OSFuction 44
OSTaskStkChk OSFuction 45
OSTaskQuery OSFuction 46
OSTimeDly OSFuction 47
OSTimeDlyHMSM OSFuction 48
OSTimeDlyResume OSFuction 49
OSTimeGet OSFuction 50
OSTimeSet OSFuction 51
OSTimeTick OSFuction 52
OSInit OSFuction 53
OSIntEnter OSFuction 54
OSIntExit OSFuction 55
OSSchedLock OSFuction 56
OSSchedUnlock OSFuction 57
OSStart OSFuction 58
OSStatInit OSFuction 59
OSVersion OSFuction 60
OS_Dummy OSFuction 61
OS_EventTaskRdy OSFuction 62
OS_EventTaskWait OSFuction 63
OS_EventTO OSFuction 64
OS_EventWaitListInit OSFuction 65
OS_FlagInit OSFuction 66
OS_FlagUnlink OSFuction 67
OS_MemInit OSFuction 68
OS_QInit OSFuction 69
OS_Sched OSFuction 70
OS_TaskIdle OSFuction 71
OS_TaskStat OSFuction 72
;OS_TCBInit OSFuction 73
EXPORT OSIntCtxSw
OSIntCtxSw
LDR R0, =74
SWI 0x40
BX R0
EXPORT OSStartHighRdy
OSStartHighRdy
LDR R0, =75
SWI 0x40
BX R0
OSTaskStkInit OSFuction 76
END
;/*********************************************************************************************************
;** End Of File
;********************************************************************************************************/
答 1: 说实话!我都没有看ucos的细节!说实话!我都没有看ucos的细节!看过vxworks老觉得那个东西不行!连任务函数都觉得使用的别扭!信号也是。。。。。
我建议人家周立功的先辈能不能空闲时候给写一些pdiUSB12的不是ucos的资料,别写那么别扭。tdp协议也是!!谢谢周立功的先辈了!!!
答 2: 问一个弱弱的问题μCOS-II与周立功EASYARM2104开发板有什么关系?
假如实现点亮周立功EASYARM2104板上的LED1,按周立功书上编的程序下载能实现吗? 答 3: 呵呵自己水平差就虚心点啊,何必这样呢!
呵呵,我看不惯浮躁的人。
怎么我买来的就能跑呢?
/****************************************Copyright (c)**************************************************
** 广州周立功单片机发展有限公司
** 研 究 所
** 产品一部
**
** http://www.zlgmcu.com
**
**--------------文件信息--------------------------------------------------------------------------------
**文 件 名: test.c
**创 建 人: 陈明计
**最后修改日期: 2003年7月8日
**描 述: lpc210x(飞利浦的ARM)的实时时钟使用在μCOS-II示例,在电脑显示界面上显示
** 当前时间,按板上的KEY1则设置时间到默认值
**--------------历史版本信息----------------------------------------------------------------------------
** 创建人: 陈明计
** 版 本: v1.0
** 日 期: 2003年7月8日
** 描 述: 原始版本
**
**--------------当前版本修订------------------------------------------------------------------------------
** 修改人:
** 日 期:
** 描 述:
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#include "config.h"
#define TASK_STK_SIZE 64
OS_STK TaskStartStk[TASK_STK_SIZE];
OS_STK TaskStk[TASK_STK_SIZE];
#define KEY1 (1 << 14) /* P0.14为key1 */
void TaskStart(void *data);
void Task(void *data);
/*********************************************************************************************************
** 函数名称: main
** 功能描述: c语言的主函数,由它启动多任务环境
** 输 入: 无
** 输 出: 无
** 全局变量: 无
** 调用模块: OSInit,OSTaskCreate,OSStart
**
** 作 者: 陈明计
** 日 期: 2003年7月8日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
int main (void)
{
OSInit();
OSTaskCreate(TaskStart, (void *)0, &TaskStartStk[TASK_STK_SIZE - 1], 0);
OSStart();
return 0;
}
/*********************************************************************************************************
** 函数名称: TaskStart
** 功能描述: μCOS-II的第一个任务,通常由它初始化目标板和建立其它任务
** 输 入: 无
** 输 出: 无
** 全局变量: 无
** 调用模块:
**
** 作 者: 陈明计
** 日 期: 2003年7月8日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void TaskStart(void *pdata)
{
struct time now;
struct date today;
char s[40];
pdata = pdata; /* 避免编译警告 */
TargetInit(); /* 目标板初始化 */
IODIR &= ~KEY1; /* 设置KEY1为输入*/
PINSEL0 = (PINSEL0 & 0xffff3fff); /* 管教选择模块初始化 */
OSTaskCreate(Task, (void *)0, &TaskStk[TASK_STK_SIZE - 1], 10); /* 创建任务 */
for (;;)
{
gettime(&now);
getdate(&today);
sprintf(s, "%04d-%02d-%02d %02d:%02d:%02d",
today.da_year,
today.da_mon,
today.da_day,
now.ti_hour,
now.ti_min,
now.ti_sec);
PC_DispStr(60, 23, s, DISP_FGND_YELLOW + DISP_BGND_BLUE);
OSTimeDly(OS_TICKS_PER_SEC / 2);
}
}
/*********************************************************************************************************
** 函数名称: TaskUart0Revice
** 功能描述: μCOS-II的任务
** 输 入: 无
** 输 出: 无
** 全局变量: 无
** 调用模块:
**
** 作 者: 陈明计
** 日 期: 2003年7月8日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void Task(void *pdata)
{
struct time now;
struct date today;
pdata = pdata; /* 避免编译警告 */
today.da_year = 2003;
today.da_mon = 7;
today.da_day = 8;
today.da_dow = 2;
now.ti_hour = 12;
now.ti_min = 11;
now.ti_sec = 10;
for (;;)
{
OSTimeDly(OS_TICKS_PER_SEC / 50); /* 延时20毫秒 */
if ((IOPIN & KEY1) != 0)
{
continue;
}
OSTimeDly(OS_TICKS_PER_SEC / 50); /* 延时20毫秒 */
if ((IOPIN & KEY1) != 0)
{
continue;
}
setdate(&today);
settime(&now);
getdate(&today);
gettime(&now);
today.da_year++;
now.ti_hour = (now.ti_hour + 1) % 24;
while ((IOPIN & KEY1) == 0)
{
OSTimeDly(OS_TICKS_PER_SEC / 50); /* 延时20毫秒 */
}
}
}
/*********************************************************************************************************
** End Of File
********************************************************************************************************/
;/****************************************Copyright (c)**************************************************
;** 广州周立功单片机发展有限公司
;** 研 究 所
;** 产品一部
;**
;** http://www.zlgmcu.com
;**
;**--------------文件信息--------------------------------------------------------------------------------
;**文 件 名: os_call_ARM.s
;**创 建 人: 陈明计
;**最后修改日期: 2003年6月18日
;**描 述:
;**
;**--------------历史版本信息----------------------------------------------------------------------------
;** 创建人: 陈明计
;** 版 本: V1.0
;** 日 期: 2003年6月18日
;** 描 述: 原始版
;**
;**
;**--------------当前版本修订------------------------------------------------------------------------------
;** 修改人:
;** 日 期:
;** 描 述:
;**
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
CODE32
AREA RTOS_Call,CODE,READONLY
MACRO
$FuctionName OSFuction $FuctionIndex
EXPORT $FuctionName ; 输出的标号
$FuctionName
STMFD SP!, {R0, R7, LR}
LDR R0, =$FuctionIndex
B CallFuction
MEND
CallFuction
SWI 0x40
MOV R7, R0
LDMFD SP!, {R0}
MOV LR, PC
BX R7
LDMFD SP!, {R7, PC}
OSFlagAccept OSFuction 0
OSFlagCreate OSFuction 1
OSFlagDel OSFuction 2
;OSFlagPend OSFuction 3
OSFlagPost OSFuction 4
OSFlagQuery OSFuction 5
OSMboxAccept OSFuction 6
OSMboxCreate OSFuction 7
OSMboxDel OSFuction 8
OSMboxPend OSFuction 9
OSMboxPost OSFuction 10
OSMboxPostOpt OSFuction 11
OSMboxQuery OSFuction 12
OSMemCreate OSFuction 13
OSMemGet OSFuction 14
OSMemPut OSFuction 15
OSMemQuery OSFuction 16
OSMutexAccept OSFuction 17
OSMutexCreate OSFuction 18
OSMutexDel OSFuction 19
OSMutexPend OSFuction 20
OSMutexPost OSFuction 21
OSMutexQuery OSFuction 22
OSQAccept OSFuction 23
OSQCreate OSFuction 24
OSQDel OSFuction 25
OSQFlush OSFuction 26
OSQPend OSFuction 27
OSQPost OSFuction 28
OSQPostFront OSFuction 29
OSQPostOpt OSFuction 30
OSQQuery OSFuction 31
OSSemAccept OSFuction 32
OSSemCreate OSFuction 33
OSSemDel OSFuction 34
OSSemPend OSFuction 35
OSSemPost OSFuction 36
OSSemQuery OSFuction 37
OSTaskChangePrio OSFuction 38
OSTaskCreate OSFuction 39
;OSTaskCreateExt OSFuction 40
OSTaskDel OSFuction 41
OSTaskDelReq OSFuction 42
OSTaskResume OSFuction 43
OSTaskSuspend OSFuction 44
OSTaskStkChk OSFuction 45
OSTaskQuery OSFuction 46
OSTimeDly OSFuction 47
OSTimeDlyHMSM OSFuction 48
OSTimeDlyResume OSFuction 49
OSTimeGet OSFuction 50
OSTimeSet OSFuction 51
OSTimeTick OSFuction 52
OSInit OSFuction 53
OSIntEnter OSFuction 54
OSIntExit OSFuction 55
OSSchedLock OSFuction 56
OSSchedUnlock OSFuction 57
OSStart OSFuction 58
OSStatInit OSFuction 59
OSVersion OSFuction 60
OS_Dummy OSFuction 61
OS_EventTaskRdy OSFuction 62
OS_EventTaskWait OSFuction 63
OS_EventTO OSFuction 64
OS_EventWaitListInit OSFuction 65
OS_FlagInit OSFuction 66
OS_FlagUnlink OSFuction 67
OS_MemInit OSFuction 68
OS_QInit OSFuction 69
OS_Sched OSFuction 70
OS_TaskIdle OSFuction 71
OS_TaskStat OSFuction 72
;OS_TCBInit OSFuction 73
EXPORT OSIntCtxSw
OSIntCtxSw
LDR R0, =74
SWI 0x40
BX R0
EXPORT OSStartHighRdy
OSStartHighRdy
LDR R0, =75
SWI 0x40
BX R0
OSTaskStkInit OSFuction 76
END
;/*********************************************************************************************************
;** End Of File
;********************************************************************************************************/
答 1: 说实话!我都没有看ucos的细节!说实话!我都没有看ucos的细节!看过vxworks老觉得那个东西不行!连任务函数都觉得使用的别扭!信号也是。。。。。
我建议人家周立功的先辈能不能空闲时候给写一些pdiUSB12的不是ucos的资料,别写那么别扭。tdp协议也是!!谢谢周立功的先辈了!!!
答 2: 问一个弱弱的问题μCOS-II与周立功EASYARM2104开发板有什么关系?
假如实现点亮周立功EASYARM2104板上的LED1,按周立功书上编的程序下载能实现吗? 答 3: 呵呵自己水平差就虚心点啊,何必这样呢!
呵呵,我看不惯浮躁的人。
怎么我买来的就能跑呢?
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
【EEPW在线】E起听工程师的声音! | |
“我踩过的那些坑”主题活动——第001期 | |
高校联络员开始招募啦!有惊喜!! | |
【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
送您一块开发板,2025年“我要开发板活动”又开始了! | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【我踩过的那些坑】电感选型错误导致的处理器连接不上被打赏50分 | |
【我踩过的那些坑】工作那些年踩过的记忆深刻的坑被打赏10分 | |
【我踩过的那些坑】DRC使用位置错误导致的问题被打赏100分 | |
我踩过的那些坑之混合OTL功放与落地音箱被打赏50分 | |
汽车电子中巡航控制系统的使用被打赏10分 | |
【我踩过的那些坑】工作那些年踩过的记忆深刻的坑被打赏100分 | |
分享汽车电子中巡航控制系统知识被打赏10分 | |
分享安全气囊系统的检修注意事项被打赏10分 | |
分享电子控制安全气囊计算机知识点被打赏10分 | |
【分享开发笔记,赚取电动螺丝刀】【OZONE】使用方法总结被打赏20分 |