娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

基于ARM7(LPC2131)平臺的μC/OS-Ⅱ的移植

發布者:CreativeMind最新更新時間:2024-11-08 來源: cnblogs關鍵字:ARM7  LPC2131  μC  OS-Ⅱ  移植 手機看文章 掃描二維碼
隨時隨地手機看文章

        MSR     CPSR_c, #(NoInt | IRQ32Mode)    ; Switch bak to IRQ mode 切換回irq模式

        LDMFD   SP, {R3,LR}^                    ; 恢復SPSR和用戶狀態的SP,注意不能回寫

                                                ; 如果回寫的是用戶的SP,所以后面要調整SP

        MSR     SPSR_cxsf, R3

        ADD     SP, SP, #4*2                    

        LDMFD   SP!, {R0-R3, R12, PC}^          

    MEND

;/* 以下可添加中斷句柄,根據實際情況改變 */

;Timer0_Handler  HANDLER Timer0

    END

3.Target.C

#define IN_TARGET

#include 'config.h'

void __irq IRQ_Exception(void)

{

    while(1);                   //  這一句替換為自己的代碼

}

void FIQ_Exception(void)

{

    while(1);                   //  這一句替換為自己的代碼

}

void TargetInit(void)

{

    /* 添加自己的代碼 */

}

        void TargetResetInit(void)

{

#ifdef __DEBUG_RAM     //如果在片內RAM調試

    MEMMAP = 0x2;                   //映射到片內RAM

#endif

#ifdef __DEBUG_FLASH     //如果在片內Flash調試

    MEMMAP = 0x1;                   //映射到片內FLASH

#endif

#ifdef __IN_CHIP     //如果在片內Flash發布(將會被加密)

    MEMMAP = 0x1;                   //映射到片內FLASH

#endif

/* 設置系統各部分時鐘 */

    PLLCON = 1; //設置激活但未連接PLL

#if (Fpclk / (Fcclk / 4)) == 1

    VPBDIV = 0;

#endif

#if (Fpclk / (Fcclk / 4)) == 2

    VPBDIV = 2;

#endif

#if (Fpclk / (Fcclk / 4)) == 4

    VPBDIV = 1;

#endif

//設定PLL的乘因子M和除因子P的值

#if (Fcco / Fcclk) == 2

    PLLCFG = ((Fcclk / Fosc) - 1) | (0 << 5);

#endif

#if (Fcco / Fcclk) == 4

    PLLCFG = ((Fcclk / Fosc) - 1) | (1 << 5);

#endif

#if (Fcco / Fcclk) == 8

    PLLCFG = ((Fcclk / Fosc) - 1) | (2 << 5);

#endif

#if (Fcco / Fcclk) == 16

    PLLCFG = ((Fcclk / Fosc) - 1) | (3 << 5);

#endif

    PLLFEED = 0xaa; //發送PLL饋送序列,執行設定PLL的動作

    PLLFEED = 0x55;

    while((PLLSTAT & (1 << 10)) == 0); //等待PLL鎖定

    PLLCON = 3; //設置激活并連接PLL

    PLLFEED = 0xaa; //發送PLL饋送序列,執行激活和鏈接動作

    PLLFEED = 0x55;

    /* 設置存儲器加速模塊 */

    MAMCR = 0; //禁止MAM功能

#if Fcclk < 20000000 //根據Fcclk的大小來設置MAM定時寄存器

    MAMTIM = 1;

#else

#if Fcclk < 40000000

    MAMTIM = 2;

#else

    MAMTIM = 3;

#endif

#endif

    MAMCR = 2; //使能MAM

    /* 初始化VIC */

    VICIntEnClr = 0xffffffff; //清零所有中斷

    VICVectAddr = 0;

    VICIntSelect = 0;

    /* 添加其他的代碼 */

}

/***************************************************************************************

**                  以下為一些與系統相關的庫函數的實現

***************************************************************************************/

#include 

#include 

#pragma import(__use_no_semihosting_swi)

 int __rt_div0(int a)

{

    a = a;

    return 0;

}

 int fputc(int ch,FILE *f)

{

    ch = ch;

    f = f;

    return 0;

}

int fgetc(FILE *f)

{

    f = f;

    return 0;

}

int _sys_close(FILEHANDLE fh)

{

    fh = fh;

    return 0;

}

int _sys_write(FILEHANDLE fh, const unsigned char * buf, unsigned len, int mode)

{

    fh = fh;

    buf = buf;

    len =len;

    mode = mode;

    return 0;

}

int _sys_read(FILEHANDLE fh, unsigned char * buf,

                     unsigned len, int mode)

{

    fh = fh;

    buf = buf;

    len =len;

    mode = mode;

    return 0;

}

void _ttywrch(int ch)

{

    ch = ch;

}

int _sys_istty(FILEHANDLE fh)

{

    fh = fh;

    return 0;

}

int _sys_seek(FILEHANDLE fh, long pos)

{

    fh = fh;

    return 0;

}

int _sys_ensure(FILEHANDLE fh)

{

    fh = fh;

    return 0;

}

long _sys_flen(FILEHANDLE fh)

{

    fh = fh;

    return 0;

}

int _sys_tmpnam(char * name, int sig, unsigned maxlen)

{

    name = name;

    sig = sig;

    maxlen = maxlen;

    return 0;

}

void _sys_exit(int returncode)

{

    returncode = returncode;

}

char *_sys_command_string(char * cmd, int len)

{

    cmd = cmd;

    len = len;

    return 0;

}

4.config.h

#ifndef __CONFIG_H 

#define __CONFIG_H

#ifndef TRUE

#define TRUE  1

#endif

#ifndef FALSE

#define FALSE 0

#endif

typedef unsigned char  uint8;                   /* 無符號8位整型變量  */

typedef signed   char  int8;                    /* 有符號8位整型變量  */

typedef unsigned short uint16;                  /* 無符號16位整型變量 */

typedef signed   short int16;                   /* 有符號16位整型變量 */

typedef unsigned int   uint32;                  /* 無符號32位整型變量 */

typedef signed   int   int32;                   /* 有符號32位整型變量 */

typedef float          fp32;                    /* 單精度浮點數(32位長度) */

typedef double         fp64;                    /* 雙精度浮點數(64位長度) */

#include    'LPC2294.h'

/* 系統設置, Fosc、Fcclk、Fcco、Fpclk必須定義*/

#define Fosc            11059200        //應當與實際一至晶振頻率,10MHz~25MHz,應當與實際一至

#define Fcclk           (Fosc * 4)      //系統頻率,必須為Fosc的整數倍(1~32),且<=60MHZ

[1] [2] [3] [4] [5] [6] [7] [8] [9]
關鍵字:ARM7  LPC2131  μC  OS-Ⅱ  移植 引用地址:基于ARM7(LPC2131)平臺的μC/OS-Ⅱ的移植

上一篇:Windows CE6.0中斷實驗過程
下一篇:arm linux 移植 mtd-utils 1.x

小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 灵璧县| 迁西县| 永寿县| 喀喇| 尚义县| 玉门市| 隆回县| 临沂市| 延边| 孙吴县| 姚安县| 调兵山市| 罗江县| 衡水市| 沅陵县| 滦平县| 太仓市| 荣昌县| 图们市| 北票市| 镇巴县| 夏邑县| 清水河县| 汉阴县| 营口市| 信阳市| 林甸县| 平罗县| 封丘县| 石嘴山市| 桃江县| 昌平区| 卫辉市| 广安市| 尼勒克县| 浑源县| 右玉县| 景谷| 正蓝旗| 清原| 西昌市|