自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 ubuntu安装使用cmake

ubuntu安装使用cmake 安装cmake 对任何用户而言都不该再成为一个问题。几乎所有主流的Linux发行版的源中都包含有cmake的安装包,直接从源中添加即可。当然,也可以在官方网站下载源代码自行编译安装。 对于Windows和Mac用户,cmake的官方网站上有相应的安装包,下载安装即可,无须赘述。 注:为了能够测试本文中的实例程序,如果读者的Linux系统中所带的cmak

2015-12-24 10:45:06 682

原创 sublime Text3使用技巧

sublime Text3使用技巧sublime Text3使用技巧汉化:快捷键:编辑选择查找和替换跳转快捷键列表(Shortcuts Cheatsheet)通用(General)选择(Selecting)查找&替换(Finding&Replacing)跳转(Jumping)窗口(Window)汉化:点击Pre

2015-12-24 10:23:49 710

原创 Ubuntu下git使用过程

1、安装: sudo apt-get install git2、初始化git 创建目录:mkdir gitpro 进入目录:cd gitpro 初始化:git init3、操作 创建文件:vi readme.txt 添加文件:git add readme.txt 设置名字:git config –global user.name “lctagnes” 设置邮箱:git config

2015-12-18 17:20:30 402

原创 AM1808触摸屏驱动移植

此文是基于AM1808平台的LCD 驱动移植过程。一。Board-da850-evm.c#define DA850_TSC_PEN GPIO_TO_PIN(2,12) //lct set#include <linux/spi/ads7846.h>static int ads7843_pendown_state(void){ int pdt = 0; pdt = !gpio_get

2015-12-18 17:12:56 534

原创 AM1808 LCD驱动移植

此文是基于AM1808平台的LCD 驱动移植过程。一。修改LCD panel参数,文件: Da8xx-fb.cstatic struct da8xx_panel known_lcd_panels[] = { /* Sharp LCD035Q3DG01 */ [0] = { .name = "Sharp_LCD035Q3DG01", .width = 3

2015-12-18 16:57:38 1212

原创 tslib-1.4.tar.gz安装和配置

确保以下软件已安装# apt-get install autoconf(或autoconf2.13)# apt-get install automake# apt-get install libtool1、下载tslib-1.4.tar.gz git clone https://github.com/kergoth/tslib 2、解压安装tslib

2015-12-18 16:26:08 6330

原创 RS485驱动

一、原理 RS232用两根线实现全双工,两根线各做各的,互不影响,可以同时进行;RS485虽然可以用四根线实现全双工,但是实际应用中比较少见,更常见的是只用两根线实现半双工,这样一来,就涉及到“收状态”和“发状态”的切换,这一切换又涉及两种情况: 1、驱动程序中已经含有对半双工情况下的接受切换,驱动程序会根据你读或写的动作,自动进行切换。这种情况下,RS485的编程就与RS2

2015-12-18 16:10:45 5614

原创 GPIO实验

一。裸机程序两种烧写方法 1.直接烧写到SD卡 不需要superboot,地址0x00 代码:1.leds_s 其中mkv210_image.c是校验前16K start.S里面是汇编代码,需要查看datasheet write2sd是拷贝脚本 把编译好的.bin文件拷贝到SD卡里面 make ./write2sd 把SD卡插到开发板 SD卡启动 可以看到灯亮 2.用minitoo

2015-12-11 17:22:45 479

原创 ARM接口编程的准备工作

一。了解开发板资源 第一步1.找到CPU,什么架构的CPU,为了找到系统上电后,第一条执行的代码该放到哪里。0x0 第二步2.0x0接什么芯片?可读可保存的。有flash(norflash)和rom 3.异常和中断? 异常:CPU自己主动终止。有个异常向量表。其中复位异常比较重要。 中断:外部打断CPU 4.SOC片上系统等于CPU加一堆控制器 看datasheet block,在ov

2015-12-11 17:21:42 544

原创 ARM寄存器

一。寄存器分类 看手册A2.3 ARM处理器总共有37个寄存器,31个通用,6个状态 1.通用寄存器(31个) 1.1 未分组通用寄存器(R0-R7)可以用作任何目的 1.2 分组通用寄存器(R8-R12)在切换到FIQ模式的时候,使用它们的影子寄存器(shadow) 特殊寄存器:R13、R14、R15 1.2.1:R13用来当SP栈指针,存储栈地址 1.2.2:R14用来当链接寄

2015-12-11 17:20:15 436

原创 ARM伪指令

一。ARM机器码 反汇编工具:arm-linux-objdump -D -S start.elf 查看手册ARM Architechture Reference Manual的指令集那一章The Arm Instruction Set ARM机器码是一个32位的整数,8个段 1.condition段:条件,4位 2.保留位:2位,00 3.shift operand:是立即数还是寄存器

2015-12-11 17:19:24 285

原创 ARM寻址方式

一。指令从哪里找操作数呢? 通过寻址 二。寻址方式 1.立即数寻址(立即数也不是随便给的,除以4的结果在0-255之间就可以) 操作数本身就在指令中。前面加# 例子:ADD R0,R0,#0x3f; 2.寄存器寻址 操作数在寄存器中。效率较高 例子:ADD R0,R1,R2; 3.寄存器间接寻址 操作数在内存中。加中括号,代表地址 例子:LDR R0,[R2]; LDR

2015-12-11 17:18:01 433

原创 ARM汇编

一。为什么要学习ARM汇编? 1.bootloader初始化代码汇编效率高 2.Linux内核初始化汇编效率高 3.汇编和C语言混合编程 二。ARM汇编分类 1.ARM标准汇编 适合windows平台,如ADS中使用 2.GNU汇编 适合Linux平台,使用GNU交叉编译器 三。汇编程序框架 入口:_start: 标示:.global _start(方便外部文件引用) 代码

2015-12-11 17:16:55 339

原创 初识ARM

一。名词归类 1.芯片 6410、2440、210 2.ARM核 A8、arm9、arm11 3.指令架构 armv6、armv7 二。三类关系 2440芯片包含arm9核,指令架构armv4 6410芯片包含arm11核,指令架构armv6 210芯片包含A8核,指令架构armv7三。ARM核演变 两大阵营:ARM和Coretex 对比:Coretex比ARM性能高很多四。

2015-12-11 17:15:37 309

原创 ARM裸机开发快速体验

一。Linux平台: 自己写makefile 自己写lds脚本 自己搭建调试环境 二。裸机开发流程 (1).编写裸机程序 (2).调试裸机程序 (3).编译 链接 格式转换成二进制映像 1.安装交叉工具链: 把课程里面的工具包拷贝到Linux,解压arm-linux-gcc到根目录-C / 交叉工具在usr/local/arm/4.4.3/bin/ 2.修改环境变量: vim

2015-12-11 17:13:39 334

原创 ARM裸机开发学习方法

一。概念:没有操作系统 二。为什么学裸机程序?什么时候用到? 1.bootloader的设计 bootloader本身就是一个大型的裸机程序 2.Linux驱动设计 软件方面:必须遵循硬件的接口规范 硬件方面:积累硬件知识 三。重要能力:裸机知识的串联能力 四。课程目标:设计一个属于自己的bootloader(参照uboot) 五。五步学习法 1.硬件相关理论 2.导读芯片手册

2015-12-11 17:12:08 645

原创 将自己的驱动加到内核

驱动直接编译进内核uImage (用户自己定制的驱动程序添加方法)程序编写方式和模块编写一样。 A 修改Kconfig B 修改Makefile 注:此处修改的Kconfig和Makefile都是相应功能文件下的文件! 以vk32xx.c为例 1、把写好的驱动根据功能首先cp到相应的位置,比如vk32xx.c就是个SPI驱动,就把它cp到/drivers/spi/下面 2、配

2015-12-11 17:00:41 465

原创 配置NFS

1、nfs安装配置: HOST sudoapt−getinstallportmapnfs−kernel−serverHOST sudo apt-get install portmap nfs-kernel-server HOST sudo apt-get install portmap nfs-common HOST sudovi/etc/exports在该文件末尾加上下面这一条语句/o

2015-12-11 16:54:53 250

原创 AM1808配置tftp服务器

1.安装sudo apt-get install tftp-hpa tftpd-hpa xinetd设置共享目录sudo vi /etc/default/tftp-hpaTFTP_DIRECTORY = “/home/lct/tftpboot” //设置tftp目录,将自己的tftp目录填上去,将默认的目录注释掉 TFTP_OPTIONS = “-l -c -s”

2015-12-11 16:52:13 314

原创 linux设备驱动之ioctl控制

大部分驱动除了具有读写的能力之外,还需要具有对硬件控制的能力。一。用户空间:ioctl 用户程序使用ioctl系统调用来控制设备。用户程序只是通过命令码告诉驱动程序想做什么,至于怎么解释这些命令和怎么实现这些命令,这都是驱动程序要做的事情。 函数原型:int ioctl(int fd, unsigned long cmd, …); 参数解析:fd:打开的文件描述符

2015-12-11 16:43:42 2980

原创 字符设备驱动

一。驱动分类:字符设备,块设备,网络接口设备。二。什么是字符设备:按字节来访问的设备,驱动通常实现open,read,write等系统调用。三。字符设备驱动模型 四。字符设备程序设计 (一)设备号 (1)设备号是什么:字符设备通过字符设备文件来存取。输入 ls -l输出的第一列是‘c’,这就是字符设备文件的标识。还有逗号分隔的两个数,他们分别是字符设备文件的主次设备号。 主设备号:用来标识与

2015-12-11 16:42:26 338

原创 platform架构小结十问

1.问:如何编写platform总线,设备,驱动这一套架构的设备驱动? 答:分为两个.c文件,一个是drv.c,一个是dev.c;前者实现平台驱动,后者实现平台设备,平台总线不用我们自己实现。2.问:编写平台驱动的核心内容有哪些? 答:分配,设置,注册一个platform_driver3.问:如何注册平台驱动? 答:使用platform_driver_register(struct platf

2015-12-11 16:39:35 330

原创 Linux输入子系统分析二

(五)input输入子系统主要函数分析 (1)各种注册函数:input_register_device,.input_register_handle,.input_register_handler 1.input_register_device:用来注册一个输入设备 int input_register_device(struct unput_dev *dev) 主要功能:初始化一些默认值,

2015-12-11 16:35:57 258

原创 Linux输入子系统分析一

一。为什么要引入input子系统? 输入设备分散不堪,用input子系统可以对分散的,不同类别的输入设备进行统一驱动。 好处: 1.统一了物理形态各异的输入设备相似的设备处理,例如各种鼠标,键盘,触摸屏。 2.提供了用于分发输入报告给用户应用程序的简单事件接口。你的驱动不必创建管理/dev节点以及相关的访问方法。因此他能够很方便的调用输入API以发送鼠标移动,键盘按键或者触摸事件给用户空间。

2015-12-11 16:33:52 374

原创 Linux驱动模型分析之platform

一。概述(1)一个现实的Linux设备和驱动通常需要挂接在一种总线上,对于本身依附于PCI、USB、I2C、SPI等设备而言,这自然不是问题。但是在嵌入式系统里面,SOC系统中集成的独立的外设控制器,挂接在SOC内存空间的外设却不需要依附于此类总线。基于这一背景,Linux发明了一种虚拟总线,就是platform总线,相应设备称为platform_device,而驱动称为platform_drive

2015-12-11 16:31:06 367

原创 编译和预处理相关知识点

一.GCC 1.本质:翻译官,把高级语言翻译成机器指令 2.常用选项:gcc -o 输出文件名 输入文件名 gcc -o build 01.c (后缀不能为其他) gcc -v -o build 01.c gcc -l -o 用来指定程序要链接的库,-l参数紧接着就是库名

2015-12-11 16:28:20 439

原创 windows和Linux共享文件的几种方式

windows和Linux共享文件的几种方式1.sshd(Secure Shell) 客户端:Secure CRT(使用SSH2协议,连接IP地址) 服务端:Ubuntu安装openssh-server:apt-get install openssh-server2.Zmodem 工具:Secure CRT option—-Session option—–X/Y/Z modem 命令:rz

2015-12-11 16:25:23 559

原创 Linux内核启动流程

这篇Linux内核启动流程是我以前总结的,好久不温习感觉都快忘光了,今天拿出来分享,希望自己每天进步一点点。希望自己多总结,多思考,不要看完一遍就扔了,这样根本没有一点效果!截图如下:

2015-03-20 15:48:50 421

原创 QT中的类型转换

关于QT中的类型转换老是记不住,到用的时候总是去百度别人的总结,今天索性参考一下网上的资料,自己整理一下吧,这些用法网上都有,只是为了自己用起来方便所以花点时间整理一下。1、char 转换为 QString char s=’m’; QString str; str=QString(s);2、QString 转换为 char QString str=”lct”; char *ch; ch

2015-03-10 17:37:39 531

原创 qt4.8 移植到Arm 平台

一、qt4.8  移植到Arm 平台1、首先找个文件夹解压下载的qt-everywhere-opensource-src-4.8.5。打开/mkspecs/qws/linux-arm-gnueabi-g++/qmake.conf 修改编译器为交叉编译器,如下:## qmake configuration for building with arm-none-linux-

2015-03-02 16:59:06 942

原创 TI-AM1808_LINUX开发笔记(续)

五.制作工具mkfs.jffs2A.安装zlib1. 解压:tar –zvxf zlib-1.2.3.tar.gz2.配置:./configure--shared --prefix=/usr/local/arm/4.4.3/arm-none-linux-gnueabi/3.修改Makefile:4.编译:make5.安装:make installB.

2015-03-02 16:38:40 630

原创 TI-AM1808_LINUX开发笔记

完整的Linux开发笔记

2015-02-28 16:42:14 2320 1

空空如也

空空如也

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

TA关注的人

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