embedded
文章平均质量分 86
少林达摩祖师
这个作者很懒,什么都没留下…
展开
-
uboot源码简要分析
uboot源码简要分析 一、uboot源码整体框架源码解压以后,我们可以看到以下的文件和文件夹: cpu与处理器相关的文件。每个子目录中都包括cpu.c和interrupt.c、start.S、u-boot.lds。cpu.c:初始化CPU、设置指令Cache和数据Cache等interrupt.c:转载 2016-04-08 12:19:40 · 336 阅读 · 0 评论 -
U-boot在S3C2440上的移植详解(一)
一、移植环境主 机:VMWare--Fedora 9开发板:Mini2440--64MB Nand,Kernel:2.6.30.4编译器:arm-linux-gcc-4.3.2.tgzu-boot:u-boot-2009.08.tar.bz2二、移植步骤本次移植的功能特点包括:支持Nand Flash读写支持从Nor/Nand Flash启动支持CS8900或者D转载 2016-04-08 12:31:33 · 584 阅读 · 0 评论 -
U-boot在S3C2440上的移植详解(二)
一、移植环境主 机:VMWare--Fedora 9开发板:Mini2440--64MB Nand,Kernel:2.6.30.4编译器:arm-linux-gcc-4.3.2.tgzu-boot:u-boot-2009.08.tar.bz2二、移植步骤4)准备进入u-boot的第二阶段(在u-boot中添加对我们开发板上Nor Flash的支持)。通常,在嵌入式bo转载 2016-04-08 12:33:04 · 341 阅读 · 0 评论 -
U-boot在S3C2440上的移植详解(四)
一、移植环境主 机:VMWare--Fedora 9开发板:Mini2440--64MB Nand,Kernel:2.6.30.4编译器:arm-linux-gcc-4.3.2.tgzu-boot:u-boot-2009.08.tar.bz2二、移植步骤在这一篇中,我们首先让开发板对CS8900或者DM9000X网卡的支持,然后再分析实现u-boot怎样来引导Linux内转载 2016-04-08 12:35:07 · 333 阅读 · 0 评论 -
U-boot在S3C2440上的移植详解(六)
一、移植环境主 机:VMWare--Fedora 9开发板:Mini2440--64MB Nand,Kernel:2.6.30.4编译器:arm-linux-gcc-4.3.2.tgzu-boot:u-boot-2009.08.tar.bz2二、移植步骤10)u-boot利用tftp服务下载内核和利用nfs服务挂载nfs文件系统。 知识点:tftp转载 2016-04-08 12:36:49 · 1612 阅读 · 0 评论 -
U-boot在S3C2440上的移植详解(三)
一、移植环境主 机:VMWare--Fedora 9开发板:Mini2440--64MB Nand,Kernel:2.6.30.4编译器:arm-linux-gcc-4.3.2.tgzu-boot:u-boot-2009.08.tar.bz2二、移植步骤5)准备进入u-boot的第二阶段(在u-boot中添加对我们开发板上Nand Flash的支持)。目前u-boot转载 2016-04-08 12:34:13 · 343 阅读 · 0 评论 -
U-boot在S3C2440上的移植详解(五)
一、移植环境主 机:VMWare--Fedora 9开发板:Mini2440--64MB Nand,Kernel:2.6.30.4编译器:arm-linux-gcc-4.3.2.tgzu-boot:u-boot-2009.08.tar.bz2二、移植步骤9)实现u-boot对yaffs/yaffs2文件系统下载的支持。 注意:此篇对Nand的操作是转载 2016-04-08 12:35:49 · 325 阅读 · 0 评论 -
S3C2440的U-Boot移植
按照视频教程,直接使用老大(韦东山老师)提供的补丁文件,直接对下载的u-boot源码打补丁,然后make 100ask24x0_config,就可以编译成功,编译下载就可以在开发板Jz2440上实现U-Boot的各种功能。但是要真正自己学会u-boot的移植,能独立修改u-boot源码,移植到另一款开发板上,还是要好好研究移植过程的。在学习的过程中,想不使用补丁文件,自己通过修转载 2016-04-08 12:40:13 · 2742 阅读 · 0 评论 -
ARM处理器模式切换(含MRS,MSR指令)
ARM处理器模式切换(含MRS,MSR指令)除了用户模式和系统模式,其余模式下都有一个私有SPSR保存状态寄存器,用来保存切换到该模式之前的执行状态,之所以用户模式和系统模式没有SPSR是因为,通常CPU大部分时间执行在用户模式下,当产生异常或系统调用时会分别切换进入另外几种模式,保存用户模式下的状态,当切换回原先模式时,直接回复SPSR的值到CPSR就可以了,因此,用户模式和系统模式下不需要转载 2016-04-08 20:15:11 · 934 阅读 · 0 评论 -
Uboot启动分析笔记-----Stage1(start.S与lowlevel_init.S详解)
Uboot启动分析笔记-----Stage1(start.S与lowlevel_init.S详解) 1 u-boot.lds 首先了解uboot的链接脚本board/my2410/u-boot.lds,它定义了目标程序各部分的链接顺序。OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")转载 2016-04-08 21:29:03 · 364 阅读 · 0 评论 -
在ubuntu中配置SSH(问题的解决)sftp的使用
配置hadoop时必须的一步就是保证ssh是联通的。 如果你的 ubuntu 中没有安装 ssh ,具体的安装步骤是这样的 : 1 到 https://launchpad.net/ubuntu/lucid/i386/openssh-client/1:5.3p1-3ubuntu3 。下载文件 ” openssh-client_5.3p1-3ubuntu3_i386.deb ” 并在终转载 2016-04-13 09:04:01 · 4407 阅读 · 0 评论 -
利用 ubuntu 终端安装 vmware-tools
1.sudo gnome-open /home 打开ubuntu "home" 文件夹2.将 "vmware-tools-distrib" 文件夹直接拖到 "home" 中3.cd ~/vmware-tools-distrib 转到home/主机名/vmware-tools-distrib目录4.sudo ./vmware-install.pl 然后输入密码一原创 2016-04-13 11:00:50 · 438 阅读 · 0 评论 -
u-boot第一阶段
u-boot 第一阶段 代码位置 cpu/arm920t/start.S 流程分析: 1.保存一些全局变量,用于启动程序将代码从flash拷贝到RAM或其他使用。有一些变量的值是通过链接脚本得到的,如 TEXT_BASE 位于board\2440\config原创 2016-04-10 11:56:14 · 315 阅读 · 0 评论 -
arm-linux-gcc编译工具的安装
1.首先在windowS上下载好arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2,并且解压好然后传到linux上,或者在linux上下载,或者解压 tar zxvf arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz22.在linux上把解压好的文件cp到/usr/local/下,我的是cp -r gcc-3.4.5转载 2016-04-14 19:18:56 · 332 阅读 · 0 评论 -
对嵌入式Linux中的根文件系统的理解和解析
虽然前面已经利用Busybox制作了根文件系统,但是对于根文件系统的作用和普通的文件系统之间的区别还是有点模糊。通过查找资料总结了一下对根文件系统的理解,也欢迎大家一起讨论。 首先要明白的是“什么是文件系统”,文件系统是对一个存储设备上的数据和元数据进行组织的机制。这种机制有利于用户和操作系统的交互。在一篇oracle的技术文章中看到这样一句话“尽管内核是 Linux 的核转载 2016-04-27 16:58:17 · 4953 阅读 · 0 评论 -
ubuntu 安装 arm-linux-gcc-4.3.2.tgz
1.解压到根目录 sudo tar zxvf arm-linux-gcc-4.3.2.tgz -C /2.设置环境变量 方法一(适用于每次用时修改) echo $PATH cd /usr/local/arm/4.3.2/bin/ export P原创 2016-05-11 10:22:28 · 1311 阅读 · 0 评论 -
s3c2440启动过程详解
一:地址空间的分配1:s3c2440是32位的,所以可以寻址4GB空间,内存(SDRAM)和端口(特殊寄存器),还有ROM都映射到同一个4G空间里.2:开发板上一般都用SDRAM做内存flash(nor、nand)来当做ROM。其中nand flash没有地址线,一次至少要读一页(512B).其他两个有地址线3:norflash不用来运行代码,只用来存储代码,NORflash,SDRA转载 2016-04-16 10:56:54 · 448 阅读 · 0 评论 -
Linux 内核学习路线
跪求大牛传授linux内核学习方法和路线1. 了解操作系统基本概念。如果不会,可以学习《操作系统:设计与实现》Andrew S.Tanenbaum 写的那本。以MINIX为例子讲解操作系统的概念。非常推荐。2. 有了操作系统的基本概念以后,可以了解Linux的机制了。推荐《Linux内核设计与实现》Robert Love 写的。这本书从概念上讲解了Linux有什么,他们是怎么运行的。这转载 2016-04-18 15:59:21 · 410 阅读 · 0 评论 -
arm-linux-gcc-4.3.2.tar.bz2 安装
新建文件夹: mkdir tmp压缩文件目录下执行: tar xjf arm-linux-gcc-4.3.2.tar.bz2 -C tmp/解压后,会在tmp中生成usr目录1.压缩文件目录下执行: sudo tar xjf arm-linux-gcc-4.3.2.tar.bz2 -C / 解压到根目录2.设置环境变量: 要用/usr/local/原创 2016-04-18 19:43:46 · 1367 阅读 · 0 评论 -
u-boot 第一阶段学习笔记
一、CPU访问芯片时需要的条件:1.地址线2.数据线 8/16/32位宽 3.访问速度 即时钟相关4.芯片相关操作要求 :比如SDRAM 包括:行地址、列地址、BANK号由存储管理器负责管理二、为什么从ADDR2连接A0? 因为ARM是32位处理器,所以它一次处理数据都是以32位为单位的,也就是说它读或者写数原创 2016-04-18 12:12:28 · 424 阅读 · 0 评论 -
u-boot移植之支持 NAND FLASH 学习笔记
一、启动相关1.bss段存放 初值是0和未初始化的全局变量,从bss_start到bss_end,从bss_start到_start是bootloader的大小,其中不包含,bss段。2.通过反汇编文件,查看bss起始地址结束地址等,可确定程序大小,0x33F80000到0x34000000只有512KB。3.相对跳转操作 ldr pc,函数名,使程序从片内SRAM直接跳转到SDRAM原创 2016-04-21 18:59:29 · 506 阅读 · 0 评论 -
tq2440 pwm 驱动
基于tq2440开发板,内核2.6.30功能神奇了,加了几条打印语句后蜂鸣器就叫了。估计是tcon 的写入速度比较慢吧,需要点延时。真心伤不起啊还有就是不知道为什么tcon 寄存器值的输出好像不对劲这个pwm 设置其实和其他的单片机也差不多,只不过多了个死区的概念,就是防止电器驱动时候的开关同时开启当tcnt 和tcnp转载 2016-05-30 15:43:25 · 386 阅读 · 0 评论 -
Linux驱动学习之:PWM驱动
PWM(Pulse Width Modulation)——脉宽调制,它是利用微控制器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用于测量、通信、功率控制与变换等许多领域。s3c2440芯片中一共有5个16位的定时器,其中有4个定时器(定时器0~定时器3)具有脉宽调制功能,因此用s3c2440可以很容易地实现PWM功能。载有s3c2440芯片的Mini2440 板子带有一个蜂鸣转载 2016-05-30 15:44:19 · 3997 阅读 · 0 评论 -
tq2440 adc 驱动
/*************************************************************基于tq2440开发板,内核2.6.30功能用到的模拟量输入口是ain2.成功实现了ad 转换,能连续采集2012年7月11日16:33:29*************************************转载 2016-05-30 15:54:24 · 425 阅读 · 0 评论 -
linux怎么删除文件夹?Linux删除文件夹命令
linux删除目录很简单,很多人还是习惯用rmdir,不过一旦目录非空,就陷入深深的苦恼之中,现在使用rm -rf命令即可。直接rm就可以了,不过要加两个参数-rf 即:rm -rf 目录名字-r 就是向下递归,不管有多少级目录,一并删除-f 就是直接强行删除,不作任何提示的意思方法:1、删除文件夹实例:rm -rf /var/log/httpd/access将转载 2016-04-22 11:42:54 · 916 阅读 · 0 评论 -
在Linux中使用线程
在Linux编写多线程程序需要包含头文件pthread.h。也就是说你在任何采用多线程设计的程序中都会看到类似这样的代码:[cpp] view plain copy#include 当然,进包含一个头文件是不能搞定线程的,还需要连接libpthread.so这个库,因此在程序连接阶段应该有类似这样的指令:gcc p转载 2016-06-01 15:04:52 · 315 阅读 · 0 评论 -
ARM Linux S3C2440之ADC驱动实现
硬件描述:S3c2440有一个10-bit的CMOS ADC 模数转换器,支持8个模拟通道输入,10位的分辨率,最高速度可达500KSPS(500 千次/每秒)。 从图中可知:模拟ADC,包含了2部分功能,一部分是触屏功能,另一部分就是普通ADC功能,分别可以产生INT_TC和INT_ADC 两个中断。8个AIN模拟输入(A[3:0],YM,YP,XM,XP)通过转载 2016-05-21 20:10:41 · 541 阅读 · 0 评论 -
busybox nfs 学习笔记
cp xxx.ko /work/nfs_root/first_fs 将linux服务器文件拷贝到单板 open() printf fwrite 等由stdin stdout 等C库支持, ls cp 由根文件系统 busybox 支持 安装busybox时不可直接make install 那样会安装到pc而破坏pc系统 init 进程和 busybox原创 2016-05-21 20:20:55 · 2086 阅读 · 0 评论 -
多线程测试
生成模块 make编译命令 arm-linux-gcc -lpthread 123.c -o 123原创 2016-08-22 15:04:10 · 283 阅读 · 0 评论 -
pthread_cond_wait详解
通常,和pthread _cond_wait 配对使用的有pthread_cond_signal , 同时还有用于pthread_cond_t初始化的pthread_cond_init,销毁的pthread_cond_destroy函数,还有用于加锁保护的pthread_mutex_lock和pthread_mutex_unlock,稍后会对为什么进行加锁做解释。 初始化条件变量i转载 2016-08-22 19:33:37 · 15032 阅读 · 2 评论 -
ARM Linux中断机制之中断处理
//现在来看看中断初始化的另一个函数early_trap_init(),该函数在文件arch/arm/kernel/traps.c中实现。void __init early_trap_init(void){//CONFIG_VECTORS_BASE在autoconf.h中定义(该文件自动成生),值为0xffff0000, unsigned long vectors = CO转载 2017-05-29 16:42:08 · 617 阅读 · 0 评论 -
ARM嵌入式LINUX启动过程(大师级人物)
一位大师级的人物写的,不看要后悔的哟!! LINUX启动过程 首先,porting linux的时候要规划内存影像,如小弟的系统有64m SDRAM, 地址从0x 0800 0000 -0x0bff ffff,32m flash,地址从0x0c00 0000-0x0dff ffff. 规划如下:bootloade转载 2017-05-29 16:45:41 · 518 阅读 · 0 评论 -
(转)ARM协处理器CP15寄存器详解
用于系统存储管理的协处理器CP15MCR{cond} coproc,opcode1,Rd,CRn,CRm,opcode2MRC {cond} coproc,opcode1,Rd,CRn,CRm,opcode2coproc 指令操作的协处理器名.标准名为pn,n,为0~15 opcode1 协处理器的特定操作码. 对于C转载 2017-05-29 16:48:41 · 461 阅读 · 0 评论 -
U-Boot的配置、编译、连接过程
原文来自zhiy66's的博客,原文地址:http://blog.cechina.cn/zhiy66/Bootloader的概念1. Bootloader的引入从前面的硬件实验可以知道,系统上电之后,需要一段程序来进行初始化:关闭WATCHDOG、改变系统时钟、初始化存储控制器、将更多的代码复制到内存中等等。如果它能将操作系统内核 (无论从本地,比如Flash;还是从远端,比如通过转载 2017-05-29 17:06:12 · 1453 阅读 · 0 评论 -
u-boot1.1.6在s3c2440上移植
我用的2440开发板,取名为TX2440。第一步:U-Boot -1.1.6需要交叉编译工3.3.2,首先安装arm-linux-gcc-3.3.2.tar.bz2。第二步:将U-Boot-1.1.6放入smb服务器,在linux下解压。(1)到U-boot-1.1.6目录下:cd u-boot-1.1.6修改cpu/arm920t下的config.mk文件,将其中的-m转载 2017-05-29 17:14:58 · 653 阅读 · 0 评论 -
U-boot在S3C2440上的移植详解(一)
一、移植环境主 机:VMWare--Fedora 9开发板:Mini2440--64MB Nand,Kernel:2.6.30.4编译器:arm-linux-gcc-4.3.2.tgzu-boot:u-boot-2009.08.tar.bz2二、移植步骤本次移植的功能特点包括:支持Nand Flash读写支持从Nor/Nand Flash启动支持CS8900或者D转载 2017-05-29 17:23:22 · 649 阅读 · 0 评论 -
S3C2440的U-Boot移植
按照视频教程,直接使用老大(韦东山老师)提供的补丁文件,直接对下载的u-boot源码打补丁,然后make 100ask24x0_config,就可以编译成功,编译下载就可以在开发板Jz2440上实现U-Boot的各种功能。但是要真正自己学会u-boot的移植,能独立修改u-boot源码,移植到另一款开发板上,还是要好好研究移植过程的。在学习的过程中,想不使用补丁文件,自己通过修转载 2017-05-29 17:28:03 · 436 阅读 · 0 评论 -
U-Boot源代码阅读笔记(二) —— 对lowlevel_init.S的分析
U-Boot源代码阅读笔记(二) —— 对lowlevel_init.S的分析本文主要分析与U-Boot启动过程相关的汇编代码lowlevel_init.S,目标平台以PXA270为例。文件位于board/myboard/lowlevel_init.S,主要执行内存相关的初始化把链接寄存器LR(即R14)的值转存到寄存器R10中,以便lowlevel_init完成后恢复执行转载 2017-05-29 17:29:06 · 353 阅读 · 0 评论 -
lowlevel_init.S 分析
在我迷迷糊学看了lowlevel_init.S中的代码之后,有一个感觉就是,要想读懂其中的代码首先得看一下你所用的芯片手册,因为里面有比较详细的存储器控制(MemoryController)描述。我用的是s3c2440手册里写得十分清楚,总共有8个块(Banks)(Bank0~Bank7),每个块对应着不同的控制与地址线,其实这些Bank很大一部分是对应着的控制寄存器的地址,这个要看实际的芯片与板转载 2017-05-29 17:30:08 · 459 阅读 · 0 评论 -
Uboot启动分析笔记-----Stage1(start.S与lowlevel_init.S详解)
Uboot启动分析笔记-----Stage1(start.S与lowlevel_init.S详解) 1 u-boot.lds 首先了解uboot的链接脚本board/my2410/u-boot.lds,它定义了目标程序各部分的链接顺序。OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")转载 2017-05-29 17:31:23 · 439 阅读 · 0 评论