随笔分类 - uc/os实时系统
摘要:产品简介: 此手册描述了三星S3C2410X 16/32位RISC微处理器。这产品应用于手携式的设备和一些具有廉价,低损耗,高性能和体积小的要求的通用设备上。 为了提高系统的整体性能,S3C2410X包含了以下一些功能部件,分离的16KB的指令缓存和16KB的数据缓存,MMU可支持虚拟内存管理,LCD控制器 (STN&TFT),NAND Flash引导装载程序,系统管理(片选逻辑和SDRAM控制器),3通道的UART,4通道的DMA,4通道的具有脉冲宽度调解(PWM) 的定时器,I/O接口,实时时钟(RTC),8通道10位模数转换(ADC)和触摸屏接口,IIC-BUS 接口,USB 总
阅读全文
摘要:OS_MEM *OSMemCreate (void*addr, INT32U nblks, INT32U blksize, INT8U *err) {..............................................plink = (void**)addr;/* Create linked list of free memory blocks当上述条件都得到满足时,所要建立的内存分区内的所有内存块链接成一个单向链表。这里之所以用单向链表,是因为在单向链表中插入和删除元素都是从链表的顶端开始向下执行的。内存区可使用静态二维数组或者在初始化时使用malloc()建立,因为
阅读全文
摘要://内存控制块typedef struct os_mem{ void *OSMemAddr; //pointer to beginning of memory partition void *OSMemFreeList; //pointer to list of free memory blocks INT32U OSMemBlkSize; //size (in bytes)of each block of memory INT32U OSMemNBlks; //Total n...
阅读全文
摘要://通过OSSemCreate()建立信号量OS_EVENT *OSSemCreate(INT16U cnt){#if OS_CRITICAL_METHOD==3 OS_CPU_SR cpu_sr;#endif OS_EVENT *pevent; if(OSIntNesting>0) //判断是否被中断服务子程序调用 { return ((OS_EVENT*)0); } OS_ENTER_CRITICAL(); pevent=OSEventFreeList;//试图从空闲事件控制块联表中得到一个事件控制块ECB if(O...
阅读全文
摘要://中断退出函数OSInitExit(),标志着中断服务子程序的终结void OSInitExit(void){#if OS_CRITICAL_METHOD==3 OS_CPU_SR cpu_sr;#endif if(OSRunning==TRUE) { OS_ENTER_CRITICAL(); if(OSIntNesting>0) { OSIntNesting--; //中断嵌套层数计算器减一 } if((OSIntNesting==0)&&(OSLockNesting==0)) ...
阅读全文
摘要://c语言,基于x86处理器的uc/os-II开中断和关中断的洪定义#if OS_CRITICAL_METHOD==1#define OS_ENTER_CRITICAL() asm CLI;#define OS_EXIT_CRITICAL() asm STI;#endif#if OS_CRITICAL_METHOD==2#define OS_ENTER_CRITICAL() asm {PUSHF;CLI}#define OS_EXIT_CRITICAL() asm POPF#endif#if OS_CRITICAL_METHOD==3#define OS_ENTER_CRITICAL() ..
阅读全文
摘要:;ARM处理器任务上下文的切换汇编语言函数OS_TSK_SW():;指令说明:STMFD,是按照高地址->低地址存储,并且指针往前-4. STMFD sp!,{pc} ; 保存当前任务PC的任务栈区STMFD SP!,{lr} ; 保存当前任务LR,即当前任务的返回地址,即任务栈区STMFD SP!,{ro-r12}; 保存R0...R12到任务栈区MRS R4,CPSR; R4用作中间暂存数据寄存器STMFD SP!,{R4}; 保存CPSR到任务栈区MRS R4,SPSR; R4用作中间暂存数据寄存器STMFD SP!{R4}; ...
阅读全文
摘要://ucos的初始化void OSInit(void){#if OS_VERSION>=204 OSInitHookBegin();#endif OS_InitMisc(); //初始化系统需要的一些变量 OS_InitRdyList(); //初始化就绪列表 OS_InitTCBList(); //初始化TCB列表 OS_InitEventList(); //初始化事件列表#if (OS_VERSION>=251)&...
阅读全文

浙公网安备 33010602011771号