嵌入式
未名湖畔的落叶
圆月照方窗,有规有矩。长竿垂短钓,能屈能伸。
展开
-
buildroot:交叉编译器的制作
交叉编译器的制作 做嵌入式开发少不了平台操作,然而我们不可能就直接在开发板上进行开发,这就需要一种编译器使自己在PC机上进行开发,但是程序可以在开发板上运行。这就需要我们制作交叉编译器,下面来说明如何制作交叉编译器。 操作系统平台:CentOS 6.4 制作流程 1、在/opt下新建一个文件夹bu原创 2013-05-30 23:44:30 · 1733 阅读 · 0 评论 -
文件系统的移植(一):Initramfs文件系统的移植
内 核 版 本:linux-3.0u-boot版本:u-boot-2010.09开发板型号:FL24401、对根文件系统进行修改 (一)的前提下不需要修改2、添加内核对 initramfs 的支持[lingyun@localhost linux-3.0]$ vt100[lingyun@localhost linux-3.0]$ make menuco原创 2013-06-05 16:18:09 · 1142 阅读 · 0 评论 -
文件系统的移植(二):nfs 文件系统
内 核 版 本:linux-3.0u-boot版本:u-boot-2010.09开发板型号:FL2440 我们在上面移植了 initramfs 文件系统,并且已经成功运行了。下面我们开始移植nfs,之前开启PC 上的nfs 服务功能确认并安装 NFS 服务依赖软件包。 在使用 NFS 共享文件之前,我们首先使用rpm 命令确认我们安装了这些应用程原创 2013-06-05 22:04:46 · 802 阅读 · 0 评论 -
文件系统的移植(三):ramdisk文件系统的移植
内 核 版 本:linux-3.0u-boot版本:u-boot-2010.09开发板型号:FL24401、对根文件系统进行修改 无修改2、添加内核对 nfs 的支持 2.1、 在内核中为 256M 的nandflash 进行分区,修改文件arch/arm/plat-s3c24xx/common-smdk.c 中第 109 行开始处的代码如下:s原创 2013-06-05 23:00:09 · 923 阅读 · 0 评论 -
文件系统的移植(四):cramfs 文件系统的移植
内 核 版 本:linux-3.0u-boot版本:u-boot-2010.09开发板型号:FL24401、对根文件系统进行修改 无修改2、添加内核对 cramfs 的支持 [lingyun@localhost linux-3.0]$ vt100 [lingyun@localhost linux-3.0]$ make menuc原创 2013-06-06 12:14:34 · 733 阅读 · 0 评论 -
文件系统的移植(五):jiffs2文件系统的移植
内 核 版 本:linux-3.0u-boot版本:u-boot-2010.09开发板型号:FL24401、对根文件系统进行修改 无修改2、添加内核对 jiffs2的支持 [lingyun@localhost linux-3.0]$ vt100 [lingyun@localhost linux-3.0]$ make menu原创 2013-06-06 12:57:58 · 1966 阅读 · 0 评论 -
u-boot-2016.09移植(6)-dm9000
TQ210的自带网卡是DM9000AE,u-boot已经自带了 DM9000A 的驱动,我们需要做的就是讲该驱动添加到我们的设备当中。一、网卡启动分析在board_init_r调用的init_sequence_r函数数组中找到网卡net信息这里看出网卡信息是用宏CONFIG_CMD_NET来管理是否添加到uboot,所以需要在tq210.h中定义宏接着看eth_initialize(),发现这个函数原创 2016-11-08 20:33:45 · 575 阅读 · 0 评论 -
u-boot-2016.09移植(7)-nandflash
一、uboot中增加NANDFLASH原创 2016-11-08 20:42:35 · 1257 阅读 · 0 评论 -
u-boot-2016.09移植(8)-合并tq210-spl.bin与u-boot.bin
为了方便烧录,我们直接将u-boot.bin追加到tq210-spl.bin后面,组成一个文件。原创 2017-04-08 13:48:10 · 984 阅读 · 0 评论 -
利用mkimage把zImage转变为uImage
在编译内核,执行make zImage时,产生zImage文件,但是烧录进开发板的文件要为uImage,如何转换呢?当u-boot中有mkimage工具时,在mkimage和zImage在同一文件下的情况下,执行以下命令:[keyue@centos6 boot]$./mkimage -A arm -O linux -T kernel -C none -a 30008000 -e 300原创 2013-04-10 15:25:16 · 1155 阅读 · 0 评论 -
patch文件的制作
diff -Nuar [源文件] [修改后的文件],如果想导出的话,直接重定向就OK了。原创 2013-04-16 09:35:51 · 641 阅读 · 0 评论 -
移植MPlayer时:unrecognized command line option "-fforce-mem"
我们在移植MPlayer时,开始在编译libmad时,经常会出现问题:unrecognized command line option "-fforce-mem"。这难倒了很多人,也让很多人对MPlayer的移植望而却步,不在抱有信心了,其实这只是gcc版本高低不同造成的。 解决方法:找到libmad-0.15.1b配置之后的Makefile,将里面出现的-fforce-mem字原创 2013-05-31 16:00:45 · 2244 阅读 · 0 评论 -
linux下取消挂载:device is busy
在linux下,所有的一切都是用指令进行,我们有时候sudo稍微快一点,不注意一点,就可能敲错命令,执行了我们不想看到的任务,这种问题很让人头痛。 我自己在挂载文件系统的时候,就出现了这个问题,一不小心把文件系统挂载到自己做事的目录下,结果自己的目录打不开了,如下: [lingyun@localhost keyue]$ ls原创 2013-06-04 15:58:03 · 2948 阅读 · 0 评论 -
Linux设备驱动之Led
内核版本:linux-3.0_________________________________________________________________ 在学习LED设备驱动期间经历的问题层出不穷,遇到的问题有以下这些:1、网上很多的LED驱动几乎都是2.6的内核版本,但是3.0内核和2.6的内核驱动编写有很多地方是不同的在2.6上能运行的设备驱动不一定能在3.0内核转载 2013-07-05 20:21:35 · 683 阅读 · 0 评论 -
linux下3G拨号上网
Linux下3G拨号上网开发板型号 :FL2440内核版本:linux-3.03G上网卡:ZTE MF626SIM卡:中国移动 1、 usb_modeswitch移植 usb_modeswitch工具用到libusb提供的API,所以在移植usb_modeswitch之前先编译libusb。 1.1、下载源码 [lingyun@localhost原创 2013-07-10 13:20:56 · 4983 阅读 · 0 评论 -
linux-3.0移植
1.1 Linux内核基础知识 在动手进行Linux内核移植之前,非常有必要对Linux内核进行一定的了解,下面从Linux内核的版本和分类说起。 1.1.1 Linux版本 Linux内核的版本号可以从源代码的顶层目录下的Makefile中看到,比如2.6.29.1内核的Makefile中: VERSION = 2 PATCHLEVEL = 6 SUBLEVEL = 2转载 2013-09-07 10:43:38 · 879 阅读 · 0 评论 -
u-boot移植
1.修改Makefile首先给要建立的S3C2410开发板取名为TE2410, 移植uboot时以smdk2410为模板,修改Makefile#tar xvjf u-boot-1.1.3.tar.bz2#cd u-boot-1.1.3#vi Makefilescb9328_config : unconfig @./mkconfig $(@:_config转载 2013-09-07 10:45:11 · 847 阅读 · 0 评论 -
根文件系统的制作
在学习linux时,学习制作根文件系统是一个必不可少的环节,它并没有大家想象中的那么困难。1、制作目录树 1.1 制作根目录 [lingyun@localhost linux-3.0]$mkdir rootfs_tree [lingyun@localhost keyue]$ cd rootfs_tree/原创 2013-06-05 15:40:00 · 778 阅读 · 0 评论 -
缺乏makeinfo
在虚拟机下执行make指令时,我们经常会出现错误,没有makeinfo,要求你安装makeinfo,但是网上经常缺找不到这个包,这时候需要安装texinfo。即执行 yum install texinfo 再次make,即可成功执行该指令。原创 2013-05-30 21:15:47 · 2061 阅读 · 0 评论 -
u-boot-2016.09移植(4)-u-boot.bin
u-boot.bin从start.S中的reset开始执行,执行一些CPU底层初始化,然后跳转到crt0.S中的_main函数。CONFIG_SYS_INIT_SP_ADDR 在单板配置文件原创 2016-11-07 21:49:33 · 899 阅读 · 2 评论 -
移植MPlayer:Error: selected processor does not support `pld [r1]''
在移植MPlayer时,有时我们会碰到各种问题,其中之一就是Error: selected processor does not support `pld [r1]''。 解决方法:修改源码libmpeg2/motion_comp_arm_s.S 在其开始的加入, #ifndef HAVE_PLD原创 2013-05-31 19:38:59 · 1546 阅读 · 0 评论 -
对嵌入式Linux中的根文件系统的理解和解析
虽然前面已经利用Busybox制作了根文件系统,但是对于根文件系统的作用和普通的文件系统之间的区别还是有点模糊。通过查找资料总结了一下对根文件系统的理解,也欢迎大家一起讨论。 首先要明白的是“什么是文件系统”,文件系统是对一个存储设备上的数据和元数据进行组织的机制。这种机制有利于用户和操作系统的交互。在一篇oracle的技术文章中看到这样一句话“尽管内核是 Linux 的核转载 2013-07-10 00:25:44 · 777 阅读 · 0 评论 -
RT3070驱动移植
无线网卡为RT3070,驱动分为STA驱动和SoftAP驱动两种,STA驱动支持无线网卡工作在STA模式下,而SoftAP的驱动支持无线网卡工作在软AP的模式下,可以作为一个软的接入点。STA驱动为2010_0831_RT3070_Linux_STA_v2.3.0.0_DPO.bz2。SoftAP的驱动是:2010_0203_RT3070_SoftAP_v2.4.0.1_DPA.bz2。需要移植S转载 2013-09-07 15:26:37 · 1207 阅读 · 0 评论 -
U-boot启动过程分析
1.1 U-Boot工作过程 U-Boot启动内核的过程可以分为两个阶段,两个阶段的功能如下: (1)第一阶段的功能Ø 硬件设备初始化Ø 加载U-Boot第二阶段代码到RAM空间Ø 设置好栈Ø 跳转到第二阶段代码入口 (2)第二阶段的功能Ø 初始化本阶段使用的硬件设备Ø 检测系统内存映射Ø 将内核从Flash读取到RAM转载 2013-10-12 19:29:04 · 745 阅读 · 0 评论 -
逻辑地址到物理地址的转换
某虚拟存储器的用户编程空间共32个页面,每页为1KB,内存为16KB。假定某时刻一用户页表中已调入内存的页面的页号和物理块号的对照表如下:页号物理块号031721138则逻辑地址0A5C(H)所对应的物理地址是什原创 2013-10-26 20:26:21 · 7427 阅读 · 1 评论 -
ARM+llinux系统移植3G拨号上网收发短信(二)
一、发送text格式的短信给联通发text格式的短信:~ >: microcom -s 115200 /dev/ttyUSB1atOK设置短信格式为Text模式:at+cmgf=1OKat+cmgs="+861300711**** "输入发送的内容:> hello (内容写完后按一下ctrl + z发送)转载 2013-09-21 10:07:26 · 862 阅读 · 0 评论 -
ARM+llinux系统移植3G拨号上网收发短信(一)
一、 PPP移植各项工作具体说明向linux内核添加3G模块的驱动(USB转串口驱动)和PPP协议的支持,然后编译内核并下载到开发板。当然如果之前已经移植好内核,那么只需要增加几个选项就可以,然后在编译内核就可以了,这个文档默认内核已经移植过,所以只讲与USB转串口驱动和PPP协议支持的几个选项。[lingyun@localhost linux-3.0]$ make menu转载 2013-09-21 10:05:50 · 1456 阅读 · 0 评论 -
ARM+linux系统移植3G拨号上网收发短信(三)
一、用text查看模式下面的“发”是指我敲的命令,“收”是指回车后显示的信息包括其他接收的信息。~ >: microcom -s 115200 /dev/ttyUSB1发:at收:OK设置成文本模式读:发:at+cmgf=1收:OK将信息保存在SIM卡中:发:at+cpms="SM","SM","SM"收:+CPMS: 0,5转载 2013-09-21 10:08:34 · 904 阅读 · 0 评论 -
U-boot从NandFlash启动的实现
用的是S3C2410.见附件start.s 其中关于nand flash启动的那一段一直百思不得其解,按说从NAND FLASH启动时,应该是前4KB映射到NGCS0,其中的代码将NAND中存放的程序拷贝到RAM中,但该文件提供的程序好象是先从NAND拷贝 128K的代码到ResetEntry开始的地方,即地址为0的地方,然后再从ResetEntry处拷到RAM中,但此时NGCS0好象只有4KB的转载 2013-11-06 20:51:16 · 1766 阅读 · 0 评论 -
At91sam9g35K烧录Linux系统
一、烧录准备目标板:At91sam9g35K烧录文件:bootstrap,u-boot and Linux kernel images准备工具:SAM_BA、SecureCRT 二、烧录过程 1、连接开发板 使用miniUSB将开发板连接到电脑,按ISP按键并上电,打开SAM_BA,点击connect,连接开发板。结果如 下所示:原创 2016-03-11 22:06:58 · 1813 阅读 · 0 评论 -
编译u-boot:make[1]: *** [lib/asm-offsets.s] Error 1
Linux系统:Ubuntu 14.04u-boot:u-boot-2015-10错误:make时会出现make[1]: *** [lib/asm-offsets.s] Error 1的错误。解决方法:出现这个错误是缺少交叉编译工具链造成的,只需要在Makefile中添加交叉工具栏就可以解决。在 ifeq ($(HOSTARCH),$(ARCH)) CROSS_C原创 2016-04-18 22:30:49 · 6436 阅读 · 1 评论 -
u-boot-2016.09移植(1)-单板配置
cpu : s5pv210(armv7) uboot :u-boot-2016.09ubuntu :ubuntu 16.04移植平台:tq210原创 2016-11-06 16:31:01 · 1220 阅读 · 0 评论 -
u-boot-2016.09移植(5)-uart
因为u-boot-2016.09的架构在向内核靠拢,所以串口不再和以前一样,可以直接使用的,这就加大了uboot移植的工作量,下面我们就来移植串口。原创 2016-11-07 21:54:26 · 1617 阅读 · 0 评论 -
u-boot-2016.09移植(2)-uboot启动简易分析
不管什么版本的uboot都是在arch/arm/cpu/u-boot-spl.lds和arch/arm/cpu/u-boot.lds中制定了入口函数ENTRY(_start),u-boot-2016.09也不例外,搜索发现_start在arch/arm/lib/vectors.S中实现:原创 2016-11-06 19:09:27 · 3325 阅读 · 0 评论 -
u-boot-2016.09移植(3)-u-boot-spl.bin
从本节开始,就正式进入移植过程,首先进行u-boot-spl.bin的移植。原创 2016-11-07 21:39:39 · 2706 阅读 · 0 评论 -
Helloworld模块编译.ko
首先引用网上最常见的Helloworld模块:原创 2014-09-17 22:23:18 · 1633 阅读 · 0 评论