自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (1)
  • 收藏
  • 关注

转载 S3c2451开发板的启动过程详解

开发板 启动过程1、概念基础SRAM,STATIC RANDOM ACCESS MEMORY  就是静态随即存储器SROM static read only memory 静态只读存储器ROM ,只读存储器RAM,随即存储器DRAM,英文全称Dynamic Random Access Memory,即动态随机存取存储器SDRAM,同步动态随机存储器 同步就是需要

2017-05-31 09:31:05 656

原创 s3c2451简介

简介Mini2451是一款高性能,低功耗的ARM9一体化平台板,它由广州友善之臂设计、生产和发行销售。它采用Samsung S3C2451作为主处理器,运行主频最高可达533MHz。作为Mini2440的继任者,它不仅仅是秉承了Mini2440“精于心,简于形”的外观,而且接口定义和布局尺寸几乎99%和Mini2440兼容,非常便于老用户更新换代;也利于新用户充分利用Mini2440现有的众多网

2017-05-30 09:20:56 2098

转载 ARM裸机程序研究 - 编译和链接

1. Linux下的二进制可执行文件。    如果世界很简单,那么二进制可执行文件也应该很简单,只包括CPU要执行的指令就可以了。可惜,世界并不简单……。Linux下的二进制可执行文件(以下简称可执行文件),也并不是只包括了指令,还包括了很多其他的信息,比如,执行需要的数据,重定位信息,调试信息,动态链接信息,等等。 所有这些信息都按照一个预定的格式组织在一个可执行文件里面。Linux下叫

2017-05-29 09:07:50 477

原创 NAND_flash和NOR_flash区别(最详细)

NAND flash和NOR flash详解NOR和NAND是现在市场上两种主要的非易失闪存技术。Intel于1988年首先开发出NOR flash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面。紧接着,1989年,东芝公司发表了NAND flash结构,强调降低每比特的成本,更高的性能,并且象磁盘一样可以通过接口轻松升级。但是经过了十多年之后,仍然有相当多的硬件工程师分不清N

2017-05-28 09:32:28 1368

原创 OSTickISR()

在9.03.05节中,我们已经提到过实时系统中时钟节拍发生频率的问题,应该在10到100Hz之间。但由于PC环境的特殊性,时钟节拍由硬件产生,间隔54.93ms (18.20648Hz)。我们将时钟节拍频率设为200Hz。PC时钟节拍的中断向量为0x08,µC/OS-II将此向量截取,指向了µC/OS的中断服务函数OSTickISR(),而原先的中断向量保存在中断129(0x81)中。为满足DOS

2017-05-19 09:03:15 2098

原创 OSIntCtxSw()

在µC/OS-II中,由于中断的产生可能会引起任务切换,在中断服务程序的最后会调用OSIntExit()函数检查任务就绪状态,如果需要进行任务切换,将调用OSIntCtxSw()。所以OSIntCtxSw()又称为中断级的任务切换函数。由于在调用OSIntCtxSw()之前已经发生了中断,OSIntCtxSw()将默认CPU寄存器已经保存在被中断任务的堆栈中了。程序清单L9.5给出的代码大部分

2017-05-17 09:12:15 1488

原创 OSCtxSw()

OSCtxSw()是一个任务级的任务切换函数(在任务中调用,区别于在中断程序中调用的OSIntCtxSw())。在80x86系统上,它通过执行一条软中断的指令来实现任务切换。软中断向量指向OSCtxSw()。在µC/OS-II中,如果任务调用了某个函数,而该函数的执行结果可能造成系统任务重新调度(例如试图唤醒了一个优先级更高的任务),则在函数的末尾会调用OSSched(),如果OSSched()判

2017-05-16 09:51:06 2679

原创 OSStartHighRdy()

µC/OS-II 的移植需要用户改写OS_CPU_A.ASM中的四个函数:OSStartHighRdy()OSCtxSw()OSIntCtxSw()OSTickISR()该函数由SStart()函数调用,功能是运行优先级最高的就绪任务,在调用OSStart()之前,用户必须先调用OSInit(),并且已经至少创建了一个任务(请参考OSTaskCreate()和OSTaskCreateExt

2017-05-15 18:39:20 6341

原创 OS_CPU.H

数据类型由于不同的处理器有不同的字长,µC/OS-II的移植需要重新定义一系列的数据结构。使用Borland C/C++编译器,整数(int)类型数据为16位,长整形(long)为32位。为了读者方便起见,尽管µC/OS-II中没有用到浮点类型的数,在源代码中笔者还是提供了浮点类型的定义。由于在80x86实模式中堆栈都是按字进行操作的,没有字节操作,所以Borland C/C++编译器中堆栈数

2017-05-13 08:42:15 479

原创 OS_CPU.H文件

OS_CPU.H 文件中包含与处理器相关的常量,宏和结构体的定义。程序清单L9.2是为80x86编写的OS_CPU.H文件的内容。程序清单L 9.2 OS_CPU.H.#ifdef OS_CPU_GLOBALS#define OS_CPU_EXT#else#define OS_CPU_EXT extern#endif/*****************************

2017-05-11 21:10:16 838

原创 开发工具,目录和文件,INCLUDES.H文件

开发工具笔者采用的是Borland C/C++ V3.1和Borland Turbo Assembler汇编器完成程序的移植和测试,它可以产生可重入的代码,同时支持在C程序中嵌入汇编语句。编译完成后,程序可在PC机上运行。本书代码的测试是在一台Pentium-II计算机上完成的,操作系统是Microsoft Windows 95。实际上编译器生成的是DOS可执行文件,在Windows的DOS窗口

2017-05-10 13:28:38 3826 1

原创 µC/OS-II在80x86上的移植

本章将介绍如何将µC/OS-II移植到Intel 80x86系列CPU上,本章所介绍的移植和代码都是针对80x86的实模式的,且编译器在大模式下编译和连接。本章的内容同样适用于下述CPU:80186802868038680486PentiumPentium II实际上,将要介绍的移植过程适用于所有与80x86兼容的CPU,如AMD,Cyrix,NEC (V-系列)等等。以Intel的

2017-05-09 16:17:33 1003

原创 OSTimeTickHook()

void OSTimeTickHook(void)File Called from Code enabled byOS_CPU_C.C OSTimeTick() OS_CPU_HOOKS_EN 只要发生时钟节拍,该函数就会被OSTimeTick()调用。一旦进入OSTimeTick()就会马上调用OSTimeTickHook()以允许执行用户的应用程序中的与时间密切相关的代码。用户还可以

2017-05-08 18:02:08 1969

原创 OSTaskStatHook()

void OSTaskStatHook(void)File Called from Code enabled byOS_CPU_C.C OSTaskStat() OS_CPU_HOOKS_EN 该函数每秒钟都会被µC/OS-Ⅱ的统计任务调用。OSTaskStatHook()允许用户加入自己的统计功能。参数 无返回值 无注意事项 统计任务大概在调用OSStart()后再过5秒开

2017-05-07 08:45:49 831

原创 OSTaskSwHook()

void OSTaskSwHook(void)File Called from Code enabled byOS_CPU_C.C OSCtxSw() andOSIntCtxSw() OS_CPU_HOOKS_EN 当执行任务切换时都会调用该函数。全局变量OSTCBHighRdy指向得到CPU的任务的TCB,而OSTCBCur指向被切换出去的任务的TCB。OSTaskSwHook()

2017-05-06 09:36:35 1299

原创 OSTaskDelHook()

void OSTaskDelHook(OS_TCB *ptcb)File Called from Code enabled byOS_CPU_C.C OSTaskDel() OS_CPU_HOOKS_EN 当用户通过调用OSTaskDel()来删除任务时都会调用该函数。这样用户就可以处理OSTaskCreateHook()所分配的内存。OSTaskDelHook()就在TCB从TCB链中

2017-05-05 15:45:27 430

原创 OSTaskCreateHook()

void OSTaskCreateHook(OS_TCB *ptcb)File Called from Code enabled byOS_CPU_C.C OSTaskCreate() and OSTaskCreateExt() OS_CPU_HOOKS_EN 无论何时建立任务,在分配好和初始化TCB后就会调用该函数,当然任务的堆栈结构也已经初始化好了。OSTaskCreateHook

2017-05-04 20:58:43 1106

原创 OSTaskCreateHook(),OSTaskDelHook(),OSTaskSwHook(),OSTaskStatHook(),OSTimeTickHook()

当用OSTaskCreate()或OSTaskCreateExt()建立任务的时候就会调用OSTaskCreateHook()。该函数允许用户或使用用户的移植实例的用户扩展µC/OS-Ⅱ的功能。当µC/OS-Ⅱ设置完了自己的内部结构后,会在调用任务调度程序之前调用OSTaskCreateHook()。该函数被调用的时候中断是禁止的。因此用户应尽量减少该函数中的代码以缩短中断的响应时间。 当OST

2017-05-02 09:09:15 995

原创 OS_CPU_C.C

µC/OS-Ⅱ的移植实例要求用户编写六个简单的C函数: OSTaskStkInit() OSTaskCreateHook() OSTaskDelHook() OSTaskSwHook() OSTaskStatHook() OSTimeTickHook() 唯一必要的函数是OSTaskStkInit(),其它五个函数必须得声明但没必要包含代码。OSTaskStkInt()

2017-05-01 09:04:25 951

Linux c编程一站式学习(中文版)

本人已细心阅读过,对于程序在PC下实现的机制叙述的比较细致,适合入门嵌入式开发学习,主要内容:部分1,C语言入门;部分2,C语言本质;部分3,linux系统编程。

2017-11-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除