共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网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
vscode+cmake搭建雅特力AT32L021开发环境被打赏30分 | |
【换取逻辑分析仪】自制底板并驱动ArduinoNanoRP2040ConnectLCD扩展板被打赏47分 | |
【分享评测,赢取加热台】RISC-V GCC 内嵌汇编使用被打赏38分 | |
【换取逻辑分析仪】-基于ADI单片机MAX78000的简易MP3音乐播放器被打赏48分 | |
我想要一部加热台+树莓派PICO驱动AHT10被打赏38分 | |
【换取逻辑分析仪】-硬件SPI驱动OLED屏幕被打赏36分 | |
换逻辑分析仪+上下拉与多路选择器被打赏29分 | |
Let'sdo第3期任务合集被打赏50分 | |
换逻辑分析仪+Verilog三态门被打赏27分 | |
换逻辑分析仪+Verilog多输出门被打赏24分 |