随笔分类 - 嵌入式
Linux、WinCE、QT、Bootloader、ARM、单片机、uC/OS-2、
摘要:第一节 S5PV210的PWM定时器S5PV210共有5个32bit的PWM定时器,其中定时器0、1、2、3有PWM功能,定时器4没有输出引脚。PWM定时器使用PCLK_PSYS作为时钟源,相关知识可以查阅"初始化时钟",相关的结构图如下: 第二节 程序相关讲解完整代码见目录见详细代码下载链接。1. main.c核心代码如下: int main(void) { // 初始化串口uart_in...
阅读全文
摘要:第一节 关于S5PV210的中断体系结构S5PV210的中断控制器是由4个向量中断控制器(VIC)、ARM PrimeCell PL192 和 4个 TrustZone Interrupt Controller (TZIC)共同组成。 S5PV210共支持93个中断源,待会我们将使能其中的一个外部中断,让大家了解中断处理的完整过程。第二节 程序相关讲解完整代码见目录详细代码下载链接。1. start.S共4个步骤,其中第2、4步和中断相关:第一步 清bss;第二步 开中断,设置CPSR 寄存器,允许中断发生,代码如下:mov r0, #0x53 msr CPSR_cxsf, r0第三步 跳转到
阅读全文
摘要:NAND Flash 关于NAND FlashS5PV210的NAND Flash控制器有如下特点:1) 支持512byte,2k,4k,8k的页大小2) 通过各种软件模式来进行NAND Flash的读写擦除等3) 8bit的总线4) 支持SLC和MCL的NAND Flash5) 支持1/4/8/12/16bit的ECC6) 支持以字节/半字/字为单位访问数据/ECC寄存器,以字为单位访问其他寄存...
阅读全文
摘要:串口设置之输入输出字符 S5PV210 UART相关说明 通用异步收发器简称UART,即UNIVERSAL ASYNCHRONOUS RECEIVER AND TRANSMITTER,它用来传输串行数据。发送数据时,CPU将并行数据写入UART,UART按照一定的格式在一根电线上串行发出;接收数据时,UART检测另一根电线的信号,将串行收集在缓冲区中,CPU即可读取UART获得这些数据。 在S5P...
阅读全文
摘要:S5PV210初始化系统时钟 S5PV210时钟体系S5PV210中包含3大类时钟domain,分别是主系统时钟domain (简称MSYS,下面将使用简称来进行相关讲解)、显示相关的时钟domain (DSYS)、外围设备的时钟domain (PSYS)。1) MSYS:用来给cortex a8处理器,dram控制器,3D,IRAM,IROM,中断控制器等提供时钟;2) DSYS:用来给显示相关...
阅读全文
摘要:原理图如图所示: 查询用户手册得到: 程序例子:(完整代码见“代码下载链接”) 1、轮询的方式查询按键事件/*main.c*/核心代码如下:while(1){dat = GPH2DAT; if(dat & (1<<0)) // KEY1被按下,则LED1亮,否则LED1灭 GPJ2DAT |= 1<<0; // OFF else GPJ2DAT &= ~(1<<0); // ONif(da...
阅读全文
摘要:S5PV210带有一个蜂鸣器,十分吵闹,本章将学习如何控制蜂鸣器。 相关引脚: 蜂鸣器的操作十分简单,原理跟操作LED一样,通过控制GPDO_O这个引脚就可以达到控制蜂鸣器的目的。 1. start.Sstart.S做了下面3件事:第一步 关看门狗;第二步 设置栈,以便调用C函数;第三步 调用main函数;2. buzzer.c完整代码如下: /*buzzer.c*/#define GPD0CO...
阅读全文
摘要:初步认识IROM和IRAM S5PV210含有一个内64K的IROM和96K的IRAM,系统启动时主要依靠它们,IROM和IRAM所处的存储空间见下图: S5PV210有IROM,且只能从IROM启动,不再支持原来的直接从外部介质启动方式。IROM代码(BL0)运行完毕后,根据OM[5:0]确定外部启动介质(BL1和BL2)完成启动。S5PV210支持的外部启动介质包括:NAND Flash、On...
阅读全文
摘要:GPIO简介GPIO(通用输入/输出端口)是相对于芯片而言的,如果在对应的芯片存在GPIO引脚则可以通过读这些引脚来获取引脚的变化(即:引脚的高低电平的变化)。通过寄存器来访问引脚:在S3C2410芯片中存在117个I/O端口,共分为A~H共8组分别为GPA~~GPH,在S3C2440中存在130个I/O端口,共分为A~J 9组名分别为GPA~GPJ,配置这些端口相应的寄存器(GPXCON, x=A~H/J),设置引脚是用于输入/输出,或者是用于特殊功能。控制s3c2440的GPIO端口的寄存器有3类,分别是GPxCON、GPxDAT、GPxUP (x=A ~ J):GPxCON:GPIO控制
阅读全文
摘要:ARM汇编语言和C语言混合编程 ATPCS规则体现了一种模块化设计的思想,其基本内容是C模块(函数)和汇编模块(函数)相互调用的一套规则(C51中也有类似的一套规则)。我感觉比在线汇编功能强大(不用有很多忌讳),条理更清楚(很简单的几条规则)。 ATPCS规则内容:1)寄存器的使用规则1、子程序之间通过寄存器r0~r3来传递参数,当参数个数多于4个时,使用堆栈来传递参数。此时r0~r3可记作A1...
阅读全文
摘要:Windows Vista/Windows 7上安装wince5.0/6.0及SDK模拟器 安装Windows CE 5.0/6.0及 SDK模拟器在Windows Vista或Windows 7计算机上,This SDK will install on Windows XP machines with Visual Studio 2008.该SDK由供应商提供将其安装在Windows Vist...
阅读全文
摘要:Makefile 介绍make命令执行时,需要一个 Makefile 文件,以告诉make命令需要怎么样的去编译和链接程序。首先,我们用一个示例来说明Makefile的书写规则。以便给大家一个感兴认识。这个示例来源于GNU的make使用手册,在这个示例中,我们的工程有8个C文件,和3个头文件,我们要写一个Makefile来告诉make命令如何编译和链接这几个文件。我们的规则是:1)如果这个工程没有...
阅读全文
摘要:一、前期准备配置DNW配置:设置波特率(115200)和端口号设置设置USB下载地址(0xd0020010、0x23e00000)安装USB驱动:1)首先将J2开关拨至SD-BOOT处,打开串口工具,设置好参数,然后开发板上电,提示安装USB下载驱动,这里注意不要选择自动安装软件,而是要选择选择从列表或指定位置安装,然后点击下一步;2)选择搜索位置包括这个位置,然后点击浏览;3)找到光盘里工具软件文件夹的“USB driver”,然后点击确定,然后下一步;直至USB驱动安装完成。交叉编译工具的安装:很简单,先解压后添加到PATHNFS和TFTP服务器的安装和配置:http://www.cnbl
阅读全文
摘要:barebox barebox号称是U-boot的升级版本,稍微看了下,支持Ethernet,USB和SD,而且同U-boot相比,它基于kbuild编译,有一个可视化的menuconfig,类似于Linux的编译,比较方便直观。 barebox的主页(www.barebox.org),通过git来下载最新的代码(首先要安装git): git clone git://git.pengutronix...
阅读全文
摘要:I/O模型 参考链接:http://www.cnblogs.com/klcf0220/p/3208890.htmlI/O复用典型地用在下列网络应用场合:1.当客户处理多个描述字时(一般是交互式输入和网络套接口),必须使用I/O复用。2.一个客户同时处理多个套接口是可能的,但是很少出现。3. 如果一个TCP服务器既要处理监听套接口,又要处理已连接套接口,一般也要用到I/O复用。4. 如果一个服务器既要处理TCP,又要处理UDP,一般也要使用I/O复用。5. 如果一个服务器要处理多个服务或者多个协议,一般要使用I/O复用。select函数select()系统调用可以使进程检测同时等待的多个I/O设
阅读全文
摘要:参考书籍:《从实践中学嵌入式linux应用程序开发》(华清远见嵌入式学院)资料下载:http://download.csdn.net/detail/klcf0220/5354013http://download.csdn.net/detail/klcf0220/5354039参考链接:http://blog.chinaunix.net/uid-28675954-id-3511554.html设备驱动概念:Linux的一个重要特点就是将所有的设备都当做文件进行处理,这一特殊文件就是设备文件(位于/dev目录下)。设备分为3类:字符设备、块设备和网络设备。设备驱动程序的特点:内核代码:设备驱动程序
阅读全文
摘要:参考书籍:《从实践中学嵌入式linux应用程序开发》(华清远见嵌入式学院)代码下载:http://download.csdn.net/detail/klcf0220/5354885资料下载:http://www.kuaipan.cn/file/id_43409466388906157.htm(http://download.csdn.net/detail/klcf0220/7058371) 、 http://www.kuaipan.cn/file/id_43409466388906143.htm参考链接:http://www.cnblogs.com/Robotke1/archive/2013/
阅读全文
摘要:参考书籍:《从实践中学嵌入式linux应用程序开发》(华清远见嵌入式学院)资料下载:http://download.csdn.net/detail/klcf0220/5331230http://www.kuaipan.cn/file/id_43409466388906159.htm参考链接:http://www.cnblogs.com/lmjob/archive/2009/08/10/1542684.htmlhttp://www.linuxidc.com/Linux/2011-02/32125.htm形象化解释:http://blog.jobbole.com/38696/任务(task)是最抽
阅读全文
摘要:参考资料:W.Richard Stevens《UNIX环境高级编程》第4章、文件和目录《从实践中学嵌入式linux应用程序开发》(华清远见嵌入式学院)第2章、嵌入式文件和I/O编程资料下载:http://www.kuaipan.cn/file/id_43409466388906160.htm(http://download.csdn.net/detail/klcf0220/7058427)文件描述符 对于linux而言,所有对设备和文件的操作都是使用文件描述符来进行的。文件描述符是一个非负的整数,它是一个索引值,并指向在内核中每个进程打开文件的记录表。当打开一个现存文件或者创建一个新文件时,内
阅读全文
摘要:参考书籍:《从实践中学嵌入式linux应用程序开发》(华清远见嵌入式学院)资料下载:http://download.csdn.net/detail/klcf0220/5333020参考链接:http://www.cnblogs.com/skynet/archive/2010/10/30/1865267.htmlhttp://www.ibm.com/developerworks/cn/linux/l-cn-mthreadps/进程与线程 :进程是程序执行时的一个实例,即它是程序已经执行到何种程度的数据结构的汇集。从内核的观点看,进程的目的就是担当分配系统资源(CPU时间、内存等)的基本单位。 线
阅读全文