![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
嵌入式linux
文章平均质量分 78
慌乱了青春
这个作者很懒,什么都没留下…
展开
-
嵌入式linux操作系统虚拟机nfs配置
mini2440通过NFS启动文件系统 在做嵌入式系统开发时,会碰到开发板上的flash资源会出现短缺的情况,例如在友善的mini2440上移植Qtopia4.3.5时,板载资源不够, 我的开发板的flash是64M,一个完整Qtopia的lib文件就有24M左右,这样板载的资源就远远不够了。在很多情况下,都是在虚拟机里做开发, 按照友善公司的pdf文档步骤,在Fedora9系统下开启nf原创 2012-05-03 15:01:52 · 1185 阅读 · 0 评论 -
Yaffs2 文件系统移植
一.准备工作1、yaffs2源代码获取进入 http://www.aleph1.co.uk/cgi-bin/viewcvs.cgi/ ,点击“Download GNU tarball”,下载后出现cvs-ro ot.tar.gz压缩包。2、busybox-1.13.3从 http://www.busybox.net/downloads/ 下载busybox转载 2013-02-27 15:36:08 · 757 阅读 · 0 评论 -
解决Unable to handle kernel NULL pointer dereference
执行make zImage生成zImage,将zImage下载到mini2440开发板中,出现错误:S3C24XX NAND Driver, (c) 2004 Simtec Electronicss3c24xx-nand s3c2440-nand: Tacls=4, 39ns Twrph0=8 79ns, Twrph1=8 79nsUnable to handle kernel N原创 2013-02-26 11:42:57 · 3323 阅读 · 1 评论 -
arm linux 内核生成过程
1. 依据arch/arm/kernel/vmlinux.lds 生成linux内核源码根目录下的vmlinux,这个vmlinux属于未压缩,带调试信息、符号表的最初的内核,大小约23MB; arm-linux-gnu-ld -EL -p --no-undefined -X -o vmlinux -T arch/arm/kernel/vmlinux.lds arch/arm/kern原创 2013-03-07 15:19:36 · 1200 阅读 · 0 评论 -
lds链接脚本***三篇博客
对于.lds文件,它定义了整个程序编译之后的连接过程,决定了一个可执行程序的各个段的存储位置。虽然现在我还没怎么用它,但感觉还是挺重要的,有必要了解一下。先看一下GNU官方网站上对.lds文件形式的完整描述:SECTIONS {...secname start BLOCK(align) (NOLOAD) : AT ( ldadr ){ contents } >regio原创 2013-03-07 15:38:32 · 2535 阅读 · 0 评论 -
GNU ld链接脚本lds简单教程
Andrew Haung bluedrum@163.com 所有创建可执行文件的最后一步就是链接。它是由ld或者是用gcc间接调用ld来完成的。它主要任务和把外部库和应用程序的目标代码放到text段正确位置。以及创建程序中其它段(如data/bss段)。 标准C程序的链接是一般是固定的。它是ld调用一个缺省的链接脚本来完成的。因此对于一般的应用开发者,几乎感觉不到原创 2013-03-07 15:21:48 · 6410 阅读 · 0 评论 -
信号量/互斥的理解
信号量实现的机制信号量是一种睡眠锁。它是实现同步操作,防止竟态的方式之一。任何进程在对共享数据进行读写操作之前必须获得用来保护共享数据的信号量,否则不能供访问权限,信号量会把这个访问进程放进一个等待队列中(这个等待队列是在信号量初始化过程中被初始化的),然后让其进入睡眠状态。这是处理器重新调度,去执行其他进程的操作。保护共享数据的信号量被释放,被这个信号量放进等待队列的进程会被激活,获得该转载 2012-12-22 23:31:01 · 938 阅读 · 0 评论 -
mini2440 led驱动代码(原创)基于iomap<测试初始化没有问题,其它功能待开发>
#include#include#include#include#include#include#include#define DEVICE_NAME "LED"static void __iomem *led_base_addr;#define GPBCON (*(volatile unsigned long*)(led_base_addr+0x00)原创 2012-12-21 13:01:56 · 1033 阅读 · 0 评论 -
.config 和 kconfig以及 makefile的关系
当我们编写完一个驱动后,我们要把它以模块形式编译或者直接编译进内核时,需要修改相关文件,其中最重要的便是kconfig ,makefile。主要是分析一下三者之间的关系,然后就其语法简要的谈一下。 当我们在内核源码目录下执行make (或者make menuconfig等命令)命令时,实际上是根据makefile 来进行编译的。我在mini2440开转载 2012-12-21 13:34:21 · 3107 阅读 · 0 评论 -
clk_get函数实现,Linux内核时钟框架
(1) 对应外设时钟的开启struct clk=clk_get(NULL,"adc");clk.enable();之后adc对应的时钟位就能时能。struct clk *clk_get(struct device *dev, const char *id){ .......... list_for_each_entry(p, &cloc转载 2012-12-20 23:14:13 · 2137 阅读 · 0 评论 -
linux驱动头文件位置的说明
驱动程序: #include 是在linux-2.6.29/include/linux下面寻找源文件。#include 是在linux-2.6.29/arch/arm/include/asm下面寻找源文件。#include 是在linux-2.6.29/arch/arm/mach-s3c2410/include/mach下面寻找源文件。#include 在linux-2.转载 2012-12-21 10:29:18 · 1069 阅读 · 0 评论 -
Mini2440触摸屏程序分析
mini2440驱动分析系列之---------------------------------------Mini2440触摸屏程序分析By JeefJiang July,8th,2009这是mini2440驱动分析系列的第三篇文章,本文分为三个部分,第一部分讲叙硬件知识,包括触摸屏的原理以及SCC2440 SOC上的触摸屏是如何工作的。第二部分分析输入设备子系统的框架,并进行相应的转载 2013-01-05 12:18:03 · 705 阅读 · 0 评论 -
TFT LCD液晶显示器的驱动原理
前两次跟大家介绍有关液晶显示器操作的基本原理,那是针对液晶本身的特性,与TFTLCD本身结构上的操作原理来做介绍.这次我们针对TFTLCD的整体系统面来做介绍,也就是对其驱动原理来做介绍,而其驱动原理仍然因为一些架构上差异的关系,而有所不同.首先我们来介绍由于Cs(storagecapacitor)储存电容架构不同,所形成不同驱动系统架构的原理. Cs(storagecapacitor)储转载 2012-12-20 23:18:32 · 12841 阅读 · 0 评论 -
mini2440驱动分析之adc
1 . ADC_DEV 结构typedef struct { wait_queue_head_t wait; int channel; int prescale; }ADC_DEV; wait 等待队列,进程读取设备,如果没有转换数据,就会睡眠在此队列上channel 转换通道,s3c2440有八通道的ad,但是只有四个通道转载 2012-12-19 23:04:05 · 576 阅读 · 0 评论 -
mini2440触摸屏驱动详解
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include /* For ts.dev.id.version */#d转载 2012-12-19 23:03:27 · 540 阅读 · 0 评论 -
非常详细的讲解mini2440驱动
/*mini2440_buttons_my.c*//*后面加了_my*//*按键驱动程序*//*mini2440所用到的按键资源*//**************************************************//* 按键 对应的IO寄存器 对应的中断引脚*//* K1 GPG0转载 2012-12-18 14:46:46 · 476 阅读 · 0 评论 -
mini2440 LCD驱动
mini2440集成了lcd控制器的接口,板子上接的lcd硬件是统宝240*320,TFT型lcd。lcd驱动对应的文件为s3c2410fb.c。要读懂这个驱动必须了解linux platform子系统的知识。因为这个驱动是以platform驱动的形式注册到内核。而且还需要frambuffer驱动的知识,因为这个驱动还是frambuffer接口的。lcd驱动在模块初始化的时候,调用platform转载 2012-12-29 13:45:11 · 891 阅读 · 0 评论 -
Linux 原子操作
一、原子操作(atomic) 所谓原子操作,就是该操作绝不会在执行完毕前被任何其他任务或事件打断,也就说,它的最小的执行单位,不可能有比它更小的执行单位,因此这里的原子实际是使用了物理学里的物质微粒的概念。 原子操作需要硬件的支持,因此是架构相关的,其API和原子类型的定义都定义在内核源码树的include/asm/atomic.h文件中,它们都使用汇编语言实现,因为C语言转载 2012-12-22 23:56:41 · 591 阅读 · 0 评论 -
arm-linux-gcc/ld/objcopy/objdump使用总结
arm-linux工具的功能如下:arm-linux-addr2line 把程序地址转换为文件名和行号。在命令行中给它一个地址和一个可执行文件名,它就会使用这个可执行文件的调试信息指出在给出的地址上是哪个文件以及行号。 arm-linux-ar 建立、修改、提取归档文件。归档文件是包含多个文件内容的一个大文件,其结构保证了可以恢复原始文件内容。arm-linux-c转载 2013-08-20 22:24:41 · 1184 阅读 · 0 评论