
linux——ARM
文章平均质量分 85
thinkpadlove
这个作者很懒,什么都没留下…
展开
-
安装arm-linux-gcc环境变量的设置
1.export PATH=/usr/local/arm/2.95.3/bin:$PATH 2.PATH=$PATH:/usr/local/arm/2.95.3/bin 3.在出现pathmunge 的语句段后添加pathmunge /usr/local/arm/2.95.3(版本号)/bin; 以上3个其实都是一样的作用,都是通过改变PATH环境变量。不同的是:/etc原创 2012-01-03 20:49:09 · 2614 阅读 · 0 评论 -
Bootloader学习分析
某款2440(b2440)开发板的BootLoader分析1、包含文件: GET option.inc GET memcfg.inc GET 2440addr.incoption.inc 顾名思义是可以改变的配置选项,其中包括一些起始地址,初始状态,总线宽度,时钟频率。如果以后对系统的设置有变化,直接修改”option.inc”中的配置即可,无需大量改动boot loader.转载 2013-01-05 11:35:27 · 979 阅读 · 0 评论 -
修改ARMS3C2440的Bootloader的FCLK注意的情况及处理
我的bootloader用的是飞凌公司提供的2440BOOT_V5.1,想降频,我是直接修改了inc/Option.inc文件的这是没有修改过的;(3) Select FCLK;FCLK SETA296352000;FCLK SETA 271500000;FCLK SETA 100000000 ;FCLK SETA 240000000 ;FCLK SETA原创 2013-01-04 16:36:04 · 1309 阅读 · 0 评论 -
u-boot启动流程分析
u-boot启动流程如下:1)reset2)设置CPU模式3)关闭看门狗/中断4)设置处理器时钟/片上总线5)初始化调试串口5) MMU/外部总线/SDRAM等初始化6)ROM代码/数据搬移到RAM7)初始化外围设备/参数8)启动完毕,进入main_loop循环 u-boot主要提供以下功能:1)设置目标板硬件参数并初始化2)为操作系统传递必要转载 2012-12-19 19:27:40 · 1368 阅读 · 0 评论 -
H-Jtag接口板调试总结
首先必须保证的三点:1、 必须确保nRESET复位信号的电压为高电平,如果为低电平,则整个板子不工作2、 确保arm周边的晶体或晶振是否能够有正确的时钟输出,如果不能,则整个板子不工作3、 确保所有的电源有没有正常工作(1.8V、3.3V、5V等)如果这三点保证不了会出现各种各样的错误 1现象:h-flasher提示“Can't转载 2012-12-18 17:04:51 · 3903 阅读 · 0 评论 -
Linux下SPI总线驱动分析
Linux下SPI总线驱动有通用接口,一般的SPI设备驱动使用这个驱动接口实现设备驱动。分析驱动最好是先了解核心代码,然后从具体设备分析入手,然后从下至上,了解整个框架,再从上到下分析,理解透彻。以下分析内核根目录均以"src"代替。内核代码http://lxr.linux.no/,版本2.6.37.2。SPI的核心代码即"src/drivers/spi/spi.c"——S转载 2012-12-17 16:17:44 · 2590 阅读 · 0 评论 -
Linux内核I2C子系统驱动
一、I2C体系结构 Linux的I2C体系结构分为3个组成部分:I2C核心、I2C总线驱动、I2C设备驱动,如下图所示。I2C核心提供总线驱动和设备驱动的注册、注销方法,algorithm;I2C总线驱动对硬件体系结构中适配器的实现,主要包括适配器i2c_adapter、适配器通信算法i2c_algorithm,如果CPU集成了I2C控制器并且linux内核支持这个CPU,那么总转载 2012-12-17 16:24:20 · 2231 阅读 · 0 评论 -
ARM+Linux 的启动分析
基于ARM 的Linux 的启动分析报告摘要:本文主要分析基于ARM 的Linux-2.2.26 内核启动过程。将首先从/arch/arm/Makefile着手,介绍三种不同的启动方案,再剖析典型的压缩内核zImage启动方案的代码结构,最后将详细分析这种方案的启动过程,直到调用start_kernel()为止。1、Linux 内核的启动方案:由/arch/arm/Make原创 2012-12-21 14:47:52 · 2607 阅读 · 0 评论 -
定点数与浮点数
定点数与浮点数 什么是定点数、浮点数? 首先我们要认清一个概念,定点数不一定是整数,浮点数不一定是小数。 如其名,浮点数和定点数的区别就在于浮点和定点上,点就是指小数点。浮点数就是小数点是浮动的,定点数就是小数点是固定不动的。 具体,什么是浮点数? 浮点数是在计算机中用以近似表示任意某个实数。具体的说,这个实数由一个整数或定点数(即尾转载 2012-12-04 14:15:53 · 10803 阅读 · 0 评论 -
QT编写多线程TCP文件接收服务器
本文介绍的是QT 多线程 TCP 文件接收服务器实例,如果你想深入了解这方面的资料的话,请关注本文末尾,不多说,我们先来看内容。因为项目需要,需要跨平台编写网络传输程序。目标:用户端:Linux(arm平台),完成文件的传输服务器:Windows ,使用多线程的文件的接收实现无线的文件传输功能用户端程序,用标准的socket完成文件传输的功能,代码如转载 2013-01-06 10:50:14 · 3238 阅读 · 3 评论 -
降低CPU主频bootloader 是 2440BOOT_V5.1
由于公司的产品板子是自己的工程师画的,可能布线的问题,CPU主频过高导致ARM启动不了,就尝试着降低主频的频率,由于三星公司用的FCLK:HCLK:PCLK=1:4:8 的比值关系,原来的CPU主频是400MHz,所以HCLK是100MHz,PCLK是50MHz。FCLK,HCLK,PCLK之间的关系在另一篇博客中有详细的描述。我之后查看了各种资料和三星的数据手册对bootloader进行修改原创 2013-01-05 17:09:18 · 1553 阅读 · 0 评论 -
SAMSUNG 2440用LVDS传输时闪屏
现象:一端用了DS90C383B把RGB信号转换成LVDS,另一端用DS90C384接受转换为TTL信号连接到AT070TN92上。时钟设置的是25M,结果是屏亮了,但是系统在读写NANDFLASH或者进行网络操作时屏幕会闪烁。这个可能是什么原因?谢谢!解决办法:摘自优快云的论坛 仅作记录 需要时查看(1)时钟和数据是同步输出的;(2)如果AHB总线冲突,会优先保证内原创 2013-10-17 14:54:38 · 3429 阅读 · 0 评论 -
Tornado 配置EditPlus编辑器
Tornado的编辑器太简陋了,我们周围又有那么多可以使用的功能强大的编辑器,比如UE,Source Insight,Vi,EditPlus等等,那么我们能不能把这些编辑器集成到Tornado中去呢?下面我们就以EditPlus为例进行说明,首先我们在Tornado菜单中的Tools->Options中选择External Editor标签页,在command中输入下面的命令:D:\Progr原创 2013-07-25 11:32:19 · 1582 阅读 · 0 评论 -
U-Boot 1.1.6 学习路程
lib_arm/libarm.a(_udivsi3.o)(.text+0x8c):/root/workdir/uboot1.1.6/lib_arm/_udivsi3.S:67: relocation truncated to fit: R_ARM_PLT32 __div0lib_arm/libarm.a(_udivsi3.o)(.text+0x8c):/root/workdir/uboot1.原创 2013-04-08 14:00:57 · 1003 阅读 · 0 评论 -
PWM Timer的使用---S3C2440的数据手册
OVERVIEW The S3C2410A has five 16-bit timers. Timer 0, 1, 2, and 3 have Pulse Width Modulation (PWM) function. Timer 4 has an internal timer only with no output pins. The timer 0 has a dead-zo转载 2013-03-12 17:09:21 · 1719 阅读 · 0 评论 -
Linux2.6的LOGO制作与显示
前不久,因为工作需要更换了液晶屏,分辨率由原来的640*480换成了800*600。当然首先更改了液晶屏驱动,修改了相应的参数。把开机Logo也进行了更换,分辨率修改为800*600。但是开机时,Logo无法显示,提示以下错误。fbcon_init: disable boot-logo (boot-logo bigger than screen).真是扯原创 2013-03-08 17:04:05 · 1557 阅读 · 0 评论 -
嵌入式Linux kernel LOGO的更换方法
【从制作logo到LCD显示或者VGA显示logo】1、制作logo的方法: 首先选择一个自己喜欢的图片,然后通过GIMP软件将该图片保存为.png格式, 变换方式这个就不说了(very easy),比如保存为linuxlogo.png.然后将该图片传入到装有Linux PC比如(ubuntu),按照以下顺序你就可以制作一个你喜欢logo前提你必须安装以下的工具(pngtopn转载 2013-03-08 15:51:55 · 5976 阅读 · 0 评论 -
UDP协议详解与QUdpSocket编程
UDP报头由4个域组成,其中每个域各占用2个字节,具体如下: 端口号 ,目标端口号 ,数据报长度 ,校验值 UDP协议使用端口号为不同的应用保留其各自的数据传输通道。UDP和TCP协议正是采用这一机制实现对同一时刻内多项应用同时发送和接收数据的支持。数据发送一方(可以是客户端或服务器端)将UDP数据报通过源端口发送出去,而数据接收一方则通过目标端口接收数据。有的网络应用只能使用预先为其预留或注原创 2012-12-20 16:27:39 · 25663 阅读 · 2 评论 -
ARM9 S3C2440 FCLK,HCLK,PCLK时钟的关系
FLCK、HCLK和PCLK的关系S3C2440有三个时钟FLCK、HCLK和PCLKs3c2440官方手册上说P7-8写到:FCLK is used by ARM920T,内核时钟,主频。HCLK is used for AHB bus, which is used by the ARM920T, the memory controller, the interr转载 2012-12-21 16:23:19 · 1194 阅读 · 0 评论 -
linux下格式化U盘
使用 sudo fdisk -l 检测到U盘被划分成几个分区Disk /dev/sda: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (log原创 2012-11-30 17:22:30 · 1703 阅读 · 0 评论 -
s3c2440+hy27uf082G2B的烧写记录
1、由于V0.9.2的H-JTAG对现代的flash不是很支持。。。下载H-Jtagv1.1.0软件 http://www.hjtag.com/xz.asp?typeid=21 由于使用的是s3c2440+hy27uf082G2B的组合,这是oks3c2440-III的开发板 2、配置JTAG接口 连接好开发板上的JTAG接口和电脑上的并口,安装并口驱动。打开H-J原创 2012-11-13 16:44:54 · 3065 阅读 · 0 评论 -
使用Jtag烧写bootloder
使用H-Jtag替代sjf2440烧写2440Flash的详细说明 说明 : 使用的是OK2440-III开发板,NANDFLASH 是K9F2G08的nandflash芯片1、下载H-Jtag软件http://www.hjtag.com/chinese/download.html2、配置JTAG接口 现在大家使用的基本上都是SJF JTAG小板,JTAG小板原创 2012-10-11 15:51:45 · 3911 阅读 · 0 评论 -
linux内核函数schedule()实现进程的调度
函数schedule()实现进程的调度。它的任务是从运行队列rq中找到一个进程,并随后将CPU分配给这个进程。schedule()可以采取主动调用或被动调用(可延迟的)的方式。1 直接调用如果current进程因缺乏资源而要立刻被阻塞,就主动调用调度程序。a.把current进程插入适当的等待队列。b.把current进程的状态改为TASK_INTERRUPTIBLE或TASK_U转载 2012-09-18 10:10:56 · 6163 阅读 · 0 评论 -
linux内核之------磁盘分区的检测add_partition ----- check_partition
add_partition,是添加磁盘分区信息的函数,负责向通用磁盘数据结构添加一个新的分区: 通用磁盘数据结构如下:struct gendisk { int major; /* major number of driver */ int first_minor; int minors转载 2012-09-18 11:39:14 · 5413 阅读 · 0 评论 -
Qt嵌入式软件开发----------QPaintEvent事件的相关理解
void QWidget::paintEvent ( QPaintEvent * ) 如果不了解它的原理,任意找个例子程序你也是很难找到什么时候它被调用的痕迹的。 Paint这个事件只要是窗体部件需要被重绘了就会被调用,是由窗体系统产生的,但要求程序重画窗体部件的时候,事件循环就会从事件队列里面选中这个事件并把它分发到那个需要重画的widget中。并不是所有的p原创 2012-07-31 11:33:34 · 8624 阅读 · 0 评论 -
嵌入式软件开发------------------Qt之QSettings类的常用函数
来源与csdn的博客:http://blog.youkuaiyun.com/yhtoo/archive/2011/04/02/6298837.aspx1、用QSettings写注册表QSettings *reg =newQSettings("HKEY_CURRENT_USER\\Software\\yinhaifan", QSet原创 2012-08-07 16:08:38 · 2134 阅读 · 1 评论 -
Qt ---- 信号和槽
概览:QT 是一个跨平台的 C++ GUI 应用构架,它提供了丰富的窗口部件集,具有面向对象、易于扩展、真正的组件编程等特点,更为引人注目的是目前 Linux 上最为流行的 KDE 桌面环境就是建立在 QT 库的基础之上。QT 支持下列平台:MS/WINDOWS-95、98、NT 和 2000;UNIX/X11-Linux、Sun Solaris、HP-UX、Digital Unix、IB原创 2012-07-19 16:41:52 · 709 阅读 · 0 评论 -
QT 之 MOC 元对象编译器
Qt 的元对象系统是用来处理对象间通信的信号和槽,它运行信息类型和动态属性。Qt的元对象系统包括以下三个部分的内容:1. QObject 类2 类声明私有段中的Q_OBJECT宏3 元对象编译器元对象编译器读取元对象编译器读取C++源文件时,如果发现在文件中类的声明中含有Q_OBJECT宏,元对象编译器就会给含有Q_OBJECT宏的类生成另一个含有元对象代码的C++源文原创 2012-07-19 16:33:26 · 2491 阅读 · 0 评论 -
linux-2.2.12内核的ADC驱动程序----光敏,电池电量
以下是我参考网络上嵌入式linux之我行的博文,对我的驱动程序进行了更改,我的驱动程序没有写时钟操作,导致驱动卡死,读不出数据。static int __init adc_init(void) { int ret; /*从平台时钟队列中获取ADC的时钟,这里为什么要取得这个时钟,因为ADC的转换频率跟时钟有关。 系统的一些时钟定义在arch/arm/plat-s3原创 2012-09-26 13:57:15 · 2421 阅读 · 0 评论 -
linux-2.2.12内核之clk_get()函数浅析
clk_get(NULL,"adc")可以获得adc时钟,每一个外设都有自己的工作频率,PRSCVL是A/D转换器时钟的预分频功能时A/D时钟的计算公式A/D时钟 = PCLK / (PRSCVL+1),注意:AD时钟最大为2.5MHZ并且应该小于PCLK的1/5clk_get从一个时钟list链表中以字符id名称来查找一个时钟clk结构体并且返回,最后调用clk原创 2012-09-26 15:26:30 · 1983 阅读 · 0 评论 -
VIM---参数配置文件.exrc的详细配置
set nuset showcmdsyntax enablesyntax onset nocompatibleif version >= 603set helplang=cnset encoding=utf-8endifautocmd BufNewFile *.cpp,*.[ch],*.sh,*.java exec ":call SetTitle原创 2012-11-28 10:34:12 · 2007 阅读 · 0 评论 -
linux驱动之ioctl实现与传参
linux驱动之ioctl一、ioctl的简介: 虽然在文件操作结构体"struct file_operations"中有很多对应的设备操作函数,但是有些命令是实在找不到对应的操作函数。如CD-ROM的驱动,想要一个弹出光驱的操作,这种操作并不是所有的字符设备都需要的,所以文件操作结构体也不会有对应的函数操作。 出于这样的原因,ioctl就有它的用处转载 2012-11-28 10:24:11 · 6986 阅读 · 0 评论 -
设备驱动之---ioctl()
一、 什么是ioctl。 ioctl是设备驱动程序中对设备的I/O通道进行管理的函数。所谓对I/O通道进行管理,就 是对设备的一些特性进行控制,例如串口的传输波特率、马达的转速等等。它的调用个数 如下: int ioctl(int fd, ind cmd, …); 其中fd就是用户程序打开设备时使用open函数返回的文件标原创 2012-07-17 16:00:25 · 2417 阅读 · 1 评论 -
s3c2440上的LED灯的驱动程序
硬件平台: OK2440-III系统平台:linux-2.6.12软件环境:vim/************************************************************************* > File Name: led.c > Author: dongzhihong > Mail: hnaydzh@gm原创 2012-11-28 09:31:33 · 1155 阅读 · 0 评论 -
Linux驱动学习记录 devfs_mk_cdev
Linux驱动学习记录 devfs_mk_cdev ---转载2.4内核注册驱动要用:int register_chrdev (unsigned int major, const char *name, struct file_operations *fops);2.4内核注销驱动要用:int unregister_chrdev( unsigned int major,转载 2012-11-27 17:35:45 · 1179 阅读 · 0 评论 -
更改linux2.6.12内核的启动界面
在做嵌入式linux系统时常常希望能自己制作液晶的启动画面,这里将讲述logo的自定义方法。linux下一般图片使用PNG格式比较多,这里就以PNG格式为例,不是PNG格式的图片,可以用GIMP转换一下:1 安装图片转换工具#sudo apt-get install netpdm复制代码2首先将png图片转成pnm原创 2012-11-07 13:59:36 · 1126 阅读 · 0 评论 -
嵌入式系统软件优化方法
嵌入式系统由于受功耗、成本和体积等因素的制约,嵌入式微处理器的处理能力与桌面系统处理器相比也存在较大差距,故嵌入式系统对程序运行的空间和时间要求更为苛刻。通常,需要对嵌入式应用程序进行性能优化,以满足嵌入式应用的性能需求。1 嵌入式程序优化的类型嵌入式应用程序优化,指在不改变程序功能的情况下,通过修改原来程序的算法、结构,并利用软件开发工具对程序进行改进,使修改后的程序运行速度更高或代码尺原创 2012-10-26 16:24:06 · 1758 阅读 · 0 评论 -
OK2440开发板 ------linux-2.6.12内核配置支持U盘,SD卡
配置内核1.配置usb hostDevice Drivers ---> SCSI device support ---> SCSI disk support USB support ---> Support for Host-side USB原创 2012-11-02 16:56:18 · 3243 阅读 · 0 评论 -
Linux 2440 LCD 控制器
嵌入式Linux之我行,主要讲述和总结了本人在学习嵌入式linux中的每个步骤。一为总结经验,二希望能给想入门嵌入式Linux的朋友提供方便。如有错误之处,谢请指正。共享资源,欢迎转载:http://hbhuanggang.cublog.cn一、开发环境主 机:VMWare--Fedora 9开发板:Mini2440--64MB Nand, Kernel:2.6.30.4编译转载 2013-11-07 11:19:27 · 1559 阅读 · 0 评论