这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » EASYARM2104 周立功EASYARM2104的问题程序

共2条 1/1 1 跳转至

EASYARM2104 周立功EASYARM2104的问题程序

院士
2006-09-17 18:14:16     打赏
EASYARM2104 周立功EASYARM2104的问题程序



关键词: EASYARM2104     周立功     立功     问题     程序    

院士
2006-12-22 22:43:00     打赏
2楼
问 本人运用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: 呵呵自己水平差就虚心点啊,何必这样呢!
呵呵,我看不惯浮躁的人。

怎么我买来的就能跑呢?

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]