自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 资源 (2)
  • 收藏
  • 关注

原创 flas的块有大小之分

 NAND FLASH主要以页(page)为单位进行读写,以块(block)为单位进行擦除。FLASH页的大小和块的大小因不同类型块结构而不同,块结构有两种:小块(图7)和大块(图8),小块NAND FLASH包含32个页,每页512+16字节;大块NAND FLASH包含64页,每页2048+64字节。 

2007-07-23 16:10:00 1491

原创 2440为什么有27根地址线

 1)    理论上可以寻址的空间为4GB,但其中有3GB的空间都预留给处理器内部的寄存器和其他设备了,留给外部可寻址的空间只有1GB,也就是0X00000000~0X3fffffff,总共应该有30根地址线。这1GB的空间,2410处理器又根据所支持的设备的特点将它分为了8份,每份空间有128MB,这每一份的空间又称为一个BANK。为方便操作,2410独立地给了每个BANK一个片选信号(nG

2007-07-23 16:05:00 2110 1

转载 三星NANDflash的一些知识

现在flash芯片容量越来越大,三星疯了一样的过段时间就宣布一次容量又翻倍。虽然很多东西还有些一知半解,但还是做个记录。flash是利用浮动门来存储信息的,类似于MOSFET,但是多一个gate,周围用绝缘体包着,所以电荷进去了就呆在那里了。这样的一个部分叫做一个cell,对于SLC,Single Level Cell(好像是这个的简写),一个cell存储一个bit。由于多的那个gate里电荷

2007-07-23 14:23:00 4056

原创 2440上大容量NANDflash的选择

现在产品需要选择一款大容量的NANDfalsh,容量至少一个GBYTE。 下面是三星生产的NANDflash芯片的型号:PartNumber Organization Operating Voltage(V) Temperature Speed(ns) PackageK9F5608R0D 32Mx8 1.65~1.95 C,I 50 63FBGAK9F5608U0D 32Mx8 2.7~3

2007-07-23 14:22:00 2027

原创 44B0X的LCD 控制器资料

44B0X的LCD 控制器资料LCD 控制器用来把定位在系统存储器中的视频缓冲区的LCD图象数据传输到LCD驱动器,并产生必须的LCD控制信号。 LCD 控制器使用时间抖动算法和帧速率控制方法,支持在灰白LCD上的单色、4级灰度(一个点占两位)、16级灰度(一个点占4位)显示,也能与彩色LCD的接口支持最大256色(每点8位)的显示 。 LCD 控制器可以编程支持不同水平和垂直点数(640x480

2006-12-26 11:10:00 1912

原创 s3C44B0X中关于frameBuffer的问题

s3C44B0X中关于frameBuffer的问题 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%..#if (LCD_TYPE==MLCD_240_320)#define SCR_XSIZE     (480)  #define SCR_YSIZE     (640)..#define ARRAY_SIZE

2006-12-25 17:18:00 1171

原创 嵌入式编程]指针与多维数组

如何理解嵌入式LCD控制器编程中的下面这段程序:在开发板所带的测试程序中的 lcdlib.c 中有这么一句:frameBuffer256=(unsigned int (*)[SCR_XSIZE/4])malloc(ARRAY_SIZE_COLOR);请问这种写法表示什么意思?语法上怎么了解?在Glib.c中 frameBuffer256 应该是一个二维数组,而在lcdlib.c中定义为

2006-12-25 17:17:00 1243

原创 浅谈C中的malloc和free(1)

在C语言的学习中,对内存管理这部分的知识掌握尤其重要!之前对C中的malloc()和free()两个函数的了解甚少,只知道大概该怎么用——就是malloc然后free就一切OK了。当然现在对这两个函数的体会也不见得多,不过对于本文章第三部分的内容倒是有了转折性的认识,所以写下这篇文章作为一个对知识的总结。这篇文章之所以命名中有个“浅谈”的字眼,也就是这个意思了!希望对大家有一点帮助!   

2006-12-25 16:25:00 1174

原创 为什么必须要在OC门输出的IO口上加上拉电阻?

为什么必须要在OC门输出的IO口上加上拉电阻?    

2006-12-25 11:31:00 13100

原创 理解(*(volatile unsigned char *)0x5F[转]

理解#define SREG    (*(volatile unsigned char *)0x5F)这样的定义,总是感觉很奇怪,不知道为什么,今天终于有了一点点心得,请大虾们多多批砖~~~   嵌入式系统编程,要求程序员能够利用C语言访问固定的内存地址。既然是个地址,那么按照C语言的语法规则,这个表示地址的量应该是指针类型。所以,知道要访问的内存地址后,比如0x5F,   第一步是要把它强制

2006-12-25 11:30:00 1939 1

转载 μC/OSII中的时钟中断技术研究

μC/OSII中的时钟中断技术研究μC/OSII中的时钟中断技术研究引 言:1 系统中断与时钟节拍1.1 系统中断  中断是一种硬件机制,用于通知CPU有个异步事件发生了。中断一旦被系统识别,CPU则保存部分(或全部)现场(context),即部分(或全部)寄存器的值,跳转到专门的子程序,称为中断服务子程序(ISR)。中断服务子程序做事件处理,处理完成后执行任务调度,程序回到就绪态优先级最高的任务

2006-12-21 21:01:00 1348

转载 基于uC/OS-II的文件系统设计

基于uC/OS-II的文件系统设计基于uC/OS-II的文件系统设计摘要:本文提出了基于µC/OS-II的一个文件系统的设计与实现方法。通过分析文件系统中的层次结构和功能模块,给出了文件系统的详细设计方案,包括文件控制块、文件描述符和文件保护机制等。最后还阐述了文件系统为保证可靠性所采取的技术。关键词: 实时嵌入式系统 µC/OS-II 文件系统1 前言  从系统的角度来看,一个文件系统要实现对存

2006-12-21 21:01:00 2445

原创 对于volatile的理解

一般说来,volatile用在如下的几个地方: 1、中断服务程序中修改的供其它程序检测的变量需要加volatile; 2、多任务环境下各任务间共享的标志应该加volatile; 3、存储器映射的硬件寄存器通常也要加volatile说明,因为每次对它的读写都可能由不同意义; 另外,以上这几种情况经常还要同时考虑数据的完整性(相互关联的几个标志读了一半被打断了重写),在1中可以通过关中断来实 现,2中

2006-12-09 11:33:00 971

转载 软中断SWI

软中断:编程异常通常叫做软中断软中断是通讯进程之间用来模拟硬中断的 一种信号通讯方式。中断源发中断请求或软中断信号后,CPU或接收进程在适当的时机自动进行中断处理或完成软中断信号对应的功能软中断是软件实现的中断,也就是程序运行时其他程序对它的中断;而硬中断是硬件实现的中断,是程序运行时设备对它的中断。 1.软中断发生的时间是由程序控制的,而硬中断发生的时间是随机的2.软中断是由程序

2006-11-19 09:50:00 1555

原创 BSP 概念解析(转)

BSP 概念解析(转)Drew在这里按照自己的理解来解释一下BSP( Board Support Package),仅供参考:BSP是板级支持包,是介于主板硬件和操作系统之间的一层,应该说是属于操作系统的一部分,主要目的是为了支持操作系统,使之能够更好的运行于硬件主板。BSP是相对于操作系统而言的,不同的操作系统对应于不同定义形式的BSP,例如VxWorks的BSP和Linux的BSP相对于某一C

2006-11-18 11:49:00 1063

转载 QX44B0_BIOS

关于QX44B0_BIOS想写一篇关于44B0 BIOS的文章。这是因为很多学ARM的用户还弄不懂BIOS里面到底有些什么?为什么单片机不用BIOS?下面以QX44B0_II BIOS解释BIOS的作用。下图是开发板上电复位后BIOS的工作过程。 此主题相关图片如下:screen.width-333)this.width=screen.width-333" border="0" />从图中可知开发

2006-11-18 11:30:00 1477

原创  uC/OS应用的简单剖析

 uC/OS应用的简单剖析这里给大家简单剖析一下uCOS吧,希望对大家能有所帮助。不足之处多多指教,有问题可以讨论。  一. uC/OS-II的移植移植uC/OS对目标处理器有一定要求,这个可以参照>一书中第8章的内容.整个嵌入式系统分为两大层:硬件层和软件层.这里主要研究软件层的架构.软件层主要分为四个部分:实时操作系统内核,与处理器相关部分,与应用相关部分,用户的应用系统.l 实时

2006-11-17 20:15:00 1454

原创 OSInit( );

uC/OS II学习时的一个重要函数 OSInit( );在uC/OS II的学习中,OSInit( );是一个重要的函数,它在OS应用中的void main();函数中首先被调用,是OS运行的第一个函数,如下程序,它完成各初始变量的初始化,建立任务空闲键表OSTCBFreeList, 建立事件空闲键表OSEventFreeList.创建一个空闲任务OS_TaskIdle,以及初始化其它如

2006-11-17 19:49:00 6268 1

转载 uC/OS - II 之事件控制块学习笔记

   uC/OS - II 之事件控制块学习笔记                                       ------Mike zhong 一.   事件控制块ECB数据结构:typedef struct{  INT8U   OSEventType; //事件类型  INT8U   OSEventGrp;  //等待任务所在的组  INT16U 

2006-11-17 17:55:00 1613

原创 程序的错误结果分析

运行11月17日的程序(消息邮箱的使用)总有错误发生,下面是对结果的分析:(1)times=0说明Task1执行,发送一个邮箱,然后Times自加,Times=1。 (2)接着执行Task2,times2=0,ss=1,说明Task2执行一次并顺利获得邮箱,接着times自加,times2=1。(3)times2=1,ss=-369098697,说明Task2执行一次,并且获得了邮箱,

2006-11-17 11:38:00 1199

原创 OSMboxPost ()

#if OS_MBOX_POST_EN > 0INT8U  OSMboxPost (OS_EVENT *pevent, void *msg){#if OS_CRITICAL_METHOD == 3                      /* Allocate storage for CPU status register           */    OS_CPU_SR  cpu_sr;#e

2006-11-17 10:07:00 2968

原创 OSMboxPend()

void  *OSMboxPend (OS_EVENT *pevent, INT16U timeout, INT8U *err){#if OS_CRITICAL_METHOD == 3                      /* Allocate storage for CPU status register           */    OS_CPU_SR  cpu_sr;#endif  

2006-11-16 17:59:00 8396

原创 与中断相关的问题

要弄清楚以下函数的意义:OSTimeTick()在OS_CORE.C中,为时钟管理函数。OSTickISR( )在OS_CPU_A.S中以汇编的形式编写。任何计算机系统都应该有一系统时钟,UCOS系统的系统时钟是通过硬件定时器产生中断来实现的,这个中断会产生一个时钟中断服务程序,时钟中断服务程序也叫做节拍服务。各个任务运行都需要一个周期性的信号指示,即每一个任务允许运行的时间片是多少,

2006-11-15 17:48:00 1479

原创 与中断相关

要弄清楚以下函数的意义:OSTimeTick()在OS_CORE.C中,为时钟管理函数。OSTickISR( )在OS_CPU_A.S中以汇编的形式编写。任何计算机系统都应该有一系统时钟,UCOS系统的系统时钟是通过硬件定时器产生中断来实现的,这个中断会产生一个时钟中断服务程序,时钟中断服务程序也叫做节拍服务。各个任务运行都需要一个周期性的信号指示,即每一个任务允许运行的时间片是多少,

2006-11-15 17:48:00 763

原创 OSSemPend

 

2006-11-15 11:16:00 1421

原创 void OSStatInit (void)

 #if OS_TASK_STAT_EN > 0void  OSStatInit (void){#if OS_CRITICAL_METHOD == 3                      /* Allocate storage for CPU status register           */    OS_CPU_SR  cpu_sr;#endif                OST

2006-11-14 21:27:00 1740

原创 void OSStart (void)

void  OSStart (void){    INT8U y;    INT8U x;    if (OSRunning == FALSE) {        y             = OSUnMapTbl[OSRdyGrp];        /* Find highest prioritys task priority number   */        x          

2006-11-14 17:40:00 2824

原创 OSTaskCreate()函数分析

INT8U  OSTaskCreate (void (*task)(void *pd), void *p_arg, OS_STK *ptos, INT8U prio);函数返回一个8位的整型数,调用该函数需要四个参数。第一个参数一个指针,也就是用户代码的首地址,在平时使用中我们把自己创建的任务的名字作为这个参数就可以了;第三个参数是指向任务堆栈栈顶的指针,通常我们把创建的任务的堆栈数组的首地址

2006-11-14 16:38:00 16554 5

原创 建立一个邮箱OSMboxCreate()

建立一个邮箱OSMboxCreate() OSMboxCreate()基本上和函数OSSemCreate()相似。不同之处在于事件控制块的类型被设置成OS_EVENT_TYPE_MBOX,以及使用.OSEventPtr域来容纳消息指针,而不是使用.OSEventCnt 域。也就是二者的不同之处在于二者的类型不同:sem 是信息量,使用的的是.OSEventCnt ,用它来表征共享资源的情况,表

2006-11-14 16:05:00 7451

原创 消息量函数分析OS_EVENT *OSSemCreate (INT16U cnt)

OS_EVENT  *OSSemCreate (INT16U cnt)                                ;该函数返回的数据类型为指针,指针指向的数据类型为OS_EVENT(事件的数据类型为结构体)。也就是函数返回一个地址,地址里存的是新创建的结构体类型所占据的内存的首地址。  OS_EVENT  *pevent; pevent = OSEventFreeList;

2006-11-14 15:51:00 10230 2

原创 OSTimeDly()函数

调用该函数后,系统作的事情有:1,把调用OSTimeDly()的任务在就绪表中的相应位置为0。2,把要延长的时间ticks赋给OSTCBCur->OSTCBDly 。3,调用 OS_Sched(),找出优先级最高的任务,并运行这个优先级最高的任务。 

2006-11-14 15:13:00 3020

原创 基于操作系统的简单应用

在建立应用之前,还应该先设置OS_CFG.H头文件来确定uC/OS-II允许的各种功能,包括定义最大任务数,任务最低优先级,事件控制块数目,内存块数目,队列控制块数目等,不用的选项可以禁止掉,以减少编译后的代码长度。本文设计一个运用uC/OS-II的简单应用,利用板上的一个七段数码管和3个LED,主要编程思路是:建立一个优先级较高的七段数码管显示任务,循环显示从1到9的数字;建立一个优先级较低

2006-11-14 11:26:00 982

转载 uC/OS-II嵌入式操作系统移植

操作系统的移植指的是使实时系统的内核能在微处理器上运行。uC/OS-II应移植到所使用的CPU上,然后才能得到应用。在uC/OS-II的移植中,处理器必须满足一下一些要求:l         处理器的C编译器能产生可重入型代码l         处理器支持中断,并且能产生定时中断l         用C语言就可以开/关中断l         处理器能支持一定数量的数据存储硬件堆栈

2006-11-14 11:25:00 2358

原创 uC/OS-II 应用程序基本结构

 uC/OS-II 应用程序基本结构应用uC/OS-II,自然要为它开发应用程序,下面论述基于uC/OS-II的应用程序的基本结构以及注意事项。每一个uC/OS-II应用至少要有一个任务。而每一个任务必须被写成无限循环的形式。以下是推荐的结构:void task ( void* pdata ){INT8U err;InitTimer(); // 可选For( ;; ){// 你的应用程序代码…….

2006-11-11 11:32:00 2560

原创 关于ucos问题

1)我想问一下斑竹,4510在跑ucos时,除了ucos自己的*.c *.s文件以外,是不是要需要另外的bootloader?? 也就是说,几乎所有的代码在arm上运行时,都需要有bios??而不仅仅uclinux需要?不一定都要有BOOTLOADER,需要写一个启动代码,和内核编译在一起就可以了:编译时应该在放在第一个文件位置编译。启动代码需要完成如下工作:设置 异常向量表,即在 0

2006-11-07 21:36:00 2196

原创 FIR的阶数,矩形窗的长度

 FIR滤波器的阶数是否就是矩形窗的长度?该值的改变对滤波器的滤波特性有何影响?以下是同一个用矩形窗设计的数字低通滤波器,通带截至频率为0.3pi,矩形窗的长度N为41和121。根据图形可以看出:(1)时域上两者的时间轴上不同的。N=41时有41点,N=121时有121点,则它们之间的时间间隔是否相同?这个时间间隔又是由谁来决定的?此外,它们在时域上的幅值和形状是一样的。似乎N=1

2006-11-06 22:03:00 9219

原创 matlab常用的矩阵函数

矩阵的操作    MATLAB的基本单位是矩阵,它是的MATLAB精髓,掌握矩阵的输入、各种数值运算以及矩阵函数的使用是以后能否学好MATLAB的关键。l          矩阵的输入   I.        直接输入创建矩阵   输入方法是先键入左方括弧“[”,然后按行直接键入矩阵的所有元素,最后键入右方括弧“]”。注意:整个矩阵以“[”和“ ]”作为首尾,同行的元素用“,”

2006-11-03 15:15:00 11693 1

原创 MATLAB的常用的三角函数 计算函数

、MATLAB 中的常用函数MATLAB的常用内部函数有: 表2.1 常用的三角函数 函数名称 函数功能sinx 函数名称

2006-11-03 15:13:00 25320

原创 MATLAB的数据显示格式

MATLAB的数据显示格式虽然在MATLAB系统中数据的存储和计算都是双精度进行的,但MATLAB可以利用菜单或format命令来调整数据的显示格式。Format命令的格式和作用如下:l          Format|format short          5位定点表示l          Format long                15位定点表示l        

2006-11-03 15:12:00 6446

原创 Boolean数据类型

 Boolean数据类型 Boolean 变量存储为 16 位(2 个字节)的数值形式,但只能是 True 或是 False。Boolean 变量的值显示为 True 或 False(在使用 Print 的时候),或者 #TRUE# 或 #FALSE#(在使用 Write # 的时候)。使用关键字 True 与 False 可将 Boolean 变量赋值为这两个状态中的一个。 当转换其他的数值类型

2006-11-03 10:30:00 31817

ARMsys2410的Uboot启动引导说明书

ARMsys2410的Uboot启动引导说明书

2008-02-01

wince目录解析

wince目录解析。给新人一点帮助

2008-02-01

空空如也

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

TA关注的人

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