- 博客(20)
- 收藏
- 关注
原创 linux下LCD编程
一、Linux的帧缓冲设备帧缓冲(framebuffer)是 Linux 为显示设备提供的一个接口,把显存抽象后的一种设备,他允许上层应用程序在图形模式下直接对显示缓冲区进行读写操作。这种操作是抽象的,统一的。用户不必关心物理显存的位置、换页机制等等具体细节。这些都是由Framebuffer 设备驱动来完成的。帧缓冲驱动的应用广泛,在 linux 的桌面系统中,Xwindow 服务器就是利
2014-06-16 15:51:17
434
转载 在linux内核里面设置LCD参数
LCD的参数设定是需要根据LCD的手册来设定arch/arm/mach-s3c2440/mach-smdk2440.c里面的s3c2410fb_display smdk2440_lcd_cfg结构体例如从LQ035NC111的手册可以得到如下一个表该表描述了该款并行LCD的所有时钟需求,在这里我参照的全是典型值“Typ”栏一个很具有参考价值的文档文件是Documentation
2014-06-16 13:44:45
483
转载 inittab文件
一、inittab文件背景(1)init进程的作用 使用uboot下载Linux内核时,环境变量bootargs决定了kernel向根文件系统传递的参数,这些参数包括 bootargs=noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0 root:指定了根文件系统在Flash分区中的位置 c
2014-06-12 22:32:31
402
原创 u-boot中的命令
1、命令相关的函数和定义 @main_loop:这个函数里有太多编译选项,对于s3c2440,去掉所有选项后等效下面的程序 void main_loop() { static char lastcommand[CFG_CBSIZE] = { 0, }; int len; int rc = 1; int flag; char *
2014-04-28 19:02:37
377
原创 u-boot的流程、主要的数据结构、内存分配
1、u-boot的启动流程: 从文件层面上看主要流程是在两个文件中:cpu/arm920t/start.s,lib_arm/board.c, 1)start.s 在flash中执行的引导代码,也就是bootloader中的stage1,负责初始化硬件环境,把u-boot从flash加载到RAM中去,然后跳到lib_arm/board.c中的start_armboot中去执行
2014-04-28 18:26:51
354
原创 将模块加入内核Kconfig
当编译了模块后,如果希望模块随系统一起启动,那么需要将模块静态编译进内核。将模块静态编译入内核,需要完成一些必要的步骤。一、向内核添加模块向Linux内核添加驱动模块,需要完成4个工作。1、编写驱动程序文件。2、将驱动程序文件放到Linux内核源码包的相应目录中,如果没有合适的目录,可以自己建立一个目录存放驱动文件程序文件。3、在目录的Kconfig文件中添加新驱动程序对应的项
2014-04-03 23:39:27
701
1
原创 Linux下串口通信编程
一、串口程序需要的头文件#include //标准输入输出定义#include //标准函数库定义#include //Unix标准函数定义#include #include #include //文件控制定义#include //POSIX中断控制定义#include /
2014-04-02 19:45:41
613
原创 Linux 下串口通信编程
int open_com(char *device_name){ int fd = 0;/*O_RDWR以读写的方式打开,O_NOCTTY是通知Linux系统这个程序不会成为这个端口的控制终端*/ if (0 > (fd = open(device_name, O_RDWR|O_NOCTTY))) { perror("Open Comport Fail:
2014-04-02 19:19:23
81
原创 stm32之CAN(二)
下面这个例程是通过CAN接收中断来实现CAN的回环测试。当测试成功时,LED2点亮,并且通过串口打印。如下代码:main.c#include "stm32f10x.h"#include "led.h"#include "usart1.h"void USART1_Configuration(void);void LED_GPIO_Configuration(void);voi
2014-03-28 23:04:07
596
原创 stm32之CAN(一)
前面博客已经具体讲述了CAN的通信协议和stm32中bxCAN的通信协议,下面我们就具体实战啦!首选一个简单的例程,是采用stm32中bxCAN的回环模式来进行测试。所谓的回环模式就是自己给自己发数据进行测试,想清楚的了解请看上一篇测试模式。当测试成功时开放板上LED1亮,并且可以通过串口打印。下面就直接上代码:main.c#include "stm32f10x.h"#include
2014-03-28 22:55:20
871
原创 stm32之RS485
stm32的rs485和rs232都是用到串口通信USART,寄存器的配置几乎一样,rs485用USART2,前面博客已经讲了如何配置串口,以及rs485协议,在这里就不再多提。下面直接讲如何设置,开发板的电路如下:本模块使用的是SP3490芯片是一种485全双工收发芯片。下面讲一下程序设计要点:1.配置RCC寄存器组,使用PLL输出72MHz时钟并作为主时钟源。2.配置G
2014-03-27 23:19:51
1939
原创 stm32之USART
重温串口的通讯协议,我们知道要配置串口通讯,至少要设置以下几个参数:字长(一次传送的数据长度)、波特率(每秒传输的数据位数)、奇偶校验位、还有停止位。对ST库函数的使用已经上手的读者应该能猜到,在初始化串口的时候,必然有一个串口初始化结构体,这个结构体的几个成员肯定就是有来存储这些控制参数的。串口工作过程分析波特率控制 波特率,即每秒传输的二进制位数,用 b/s (bps)表示,通过对
2014-03-20 21:11:54
598
原创 stm32之systick
认识一下systickCortex-M3在内核部分 包含了一个简单的定时器——SysTick timer.在STM32中SysTick 以 HCLK(AHB时钟)或HCLK/8 作为运行时钟。SysTick定时器能产生中断,CM3为它专门开出一个异常类型,并且在中断向量表中有它的一席之地。SysTick定时器除了能服务于操作系统之外,还能用于其它目的:如作为一个闹铃,用于测量时间等。
2014-03-20 17:56:31
493
原创 stm32库初认识
STM32库是由ST公司针对STM32提供的函数接口,即API (Application Program Interface),开发者可调用这些函数接口来配置STM32的寄存器,使开发人员得以脱离最底层的寄存器操作,有开发快速,易于阅读,维护成本低等优点。stm32结构及库层次关系1.CMSIS标准可见CMSIS层位于硬件层与操作系统或用户层之间,提供了与芯片生产商无关
2014-03-15 00:38:26
671
原创 stm32时钟
下面是从网上找的一张stm32时钟图在STM32中,有五个时钟源,为HSI、HSE、LSI、LSE、PLL。 ①、HSI是高速内部时钟,RC振荡器,频率为8MHz。 ②、HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。 ③、LSI是低速内部时钟,RC振荡器,频率为40kHz。 ④、LSE是低速外部时钟,接频率
2014-03-14 20:34:46
590
原创 RS-232与RS-485
一、RS-232 RS-232C标准(协议)的全称是EIA-RS-232C标准,其中EIA(Electronic Industry Association)代表美国电子工业协会,RS(recommeded standard)代表推荐标准,232是标识号,C代表RS232的最新一次修改(1969),在这之前,有RS232B、RS232A。。它规定连接电缆和机械、电气特性、信号功能及传
2014-03-08 09:51:28
982
原创 写一个函数,获取某张网卡的IP地址
写一个函数,获取某张网卡的IP地址,函数原型为: int get_ipaddr(char *intf, char *ipaddr)返回值: 0表示成功, -1表示失败输入参数: intf这是网卡的名字,譬如第一张网卡传参为"eth0"输出参数: ipaddr是返回的IP地址放到这个buf里,注意不要溢出;程序设计提示:1, 使用pipe创建一个管道,并使用fork()创建
2013-11-02 09:26:18
562
原创 我的APUE学习笔记(三)
第三章:文件I/O 1、文件I/O包括不带缓存的(unbuffered)I/O和标准I/O。所有的磁盘I/O都有经过内核的块缓存器(唯一例外的是对原始磁盘设备的I/O)。术语“不带缓存的I/O”指的是在用户的进程中对read和write不会自动缓存,每次read或write就要都要调用内核中的一个系统调用。不带缓存的read和write是相对于标准I/O的fread、fwrite等流函
2013-10-12 15:10:08
104
原创 我的APUE学习笔记(一)
第一章:UNIX基础知识 1、系统在其口令文件,通常是/ e t c / p a s s w d文件中查看登录名。口令文件中的登录项由7个以冒号分隔的字段组成:登录名,加密口令,数字用户I D ( 2 2 4 ),数字组I D ( 2 0 ),注释字段,起始目录( / h o m e / s t e v e n s ),以及s h e l l程序( / b i n / k s h )。
2013-10-12 15:01:50
377
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人