![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
嵌入式linux
文章平均质量分 80
zhuzhiqi11
天行健君子当自强不息
展开
-
s3c2440 nand flash
nandflash在对大容量的数据存储中发挥着重要的作用。相对于norflash,它具有一些优势,但它的一个劣势是很容易产生坏块,因此在使用nandflash时,往往要利用校验算法发现坏块并标注出来,以便以后不再使用该坏块。nandflash没有地址或数据总线,如果是8位nandflash,那么它只有8个IO口,这8个IO口用于传输命令、地址和数据。nandflash主要以page(页)为单位进行转载 2014-06-25 09:14:05 · 544 阅读 · 0 评论 -
linux环境下嵌入式开发常用工具安装
linux环境下嵌入式开发常用工具安装原创 2014-05-24 00:03:41 · 777 阅读 · 1 评论 -
linux2.6.26移植
宿主机:Ubuntu13.10 gcc-4.3.1目标机:s3c2440交叉编译器:arm-linux-gcc-4.3.2要移植的内核版本:linux-2.6.26文件系统: yaffs2准备知识:Linux支持多种平台架构。在其源码的arch目录下,已经将各种支持的平台架构的源码分门别类。为了配置方便,在各种平台架构的目录下,一般都配有一个名为原创 2014-07-10 21:10:46 · 714 阅读 · 0 评论 -
嵌入式试题
1. 以下三条输出语句分别输出什么?char str1[] = "abc";char str2[] = "abc";const char str3[] = "abc"; const char str4[] = "abc"; const char* str5 = "abc";const char* str6 = "abc";cout c原创 2014-07-09 14:57:41 · 1116 阅读 · 0 评论 -
关于ARM9协处理器CP15及MCR和MRC指令
关于ARM9协处理器CP15及MCR和MRC指令关于ARM9协处理器CP15及MCR和MRC指令http://6xudonghai.blog.163.com/blog/static/336406292008724103317304/在基于ARM的嵌入式应用系统中,存储系统通常是通过系统控制协处理器CP15完成的。CP15包含16个32位的寄存器,其编号为转载 2014-06-18 22:28:52 · 759 阅读 · 0 评论 -
Ubuntu 13.0 嵌入式开发常用工具安装(二) u-boot和Kernel及busybox官方下载地址
Ubuntu 13.0 嵌入式开发常用工具安装(二)原创 2014-05-24 11:23:53 · 663 阅读 · 0 评论 -
linux I节点
最近在复习linux, 谈谈自己对i节点的理解。 一个磁盘可以划分为很多个扇区, 每个扇区有512个字节, 扇区是磁盘的基本存储单元。将每个扇区编号, 这样磁盘就变为了一系列编了号的块组合。一个磁盘主要包括引导块, 超级块, i节点表,文件存储区, 进程对换区等。1、.引导块引导块占用第0号物理块, 不属于文件系统管辖。如果系统中有多个文件系统, 只有跟文件转载 2014-06-22 09:29:00 · 843 阅读 · 0 评论 -
移植u-boot-1.3.4到S3C2440
一.预备知识:1. 首先,U-Boot1.3.4还没有支持s3c2440,移植仍是用2410的文件稍作修改而成的。2. 2440和2410的区别:2440和2410的区别主要是2440的主频更高,增加了摄像头接口和AC‘97音频接口;寄存器方面,除了新增模 块的寄存器外,移植所要注意的是NAND FlASH控制器的寄存器有较大的变化、芯片的时钟频率控制寄存器(芯转载 2014-06-21 09:48:38 · 668 阅读 · 0 评论 -
U-boot代码函数调用关系
U-boot代码函数调用关系本文以arm926ejs为例,分析了整个uboot代码的启动过程。/cpu/arm926ejs/start.S //设置堆栈,申请中断,开辟内存空间-> _armboot_start() /lib_arm/board.c //flash,网卡,内存,波特率,显示等功能初始化 -> cpu_init() //初始化所依赖的cpu转载 2014-06-22 23:13:41 · 889 阅读 · 0 评论 -
Kobject and Kset
1、Sysfs文件系统"sysfsis a ram-based filesystem initially based on ramfs. It provides ameans to export kernel data structures, their attributes, and thelinkages between them to userspace.”Linux2.6内核引入了转载 2014-08-08 11:00:15 · 488 阅读 · 0 评论 -
socket编程
对TCP/IP、UDP、Socket编程这些词你不会很陌生吧?随着网络技术的发展,这些词充斥着我们的耳朵。那么我想问:1. 什么是TCP/IP、UDP?2. Socket在哪里呢?3. Socket是什么呢?4. 你会使用它们吗?什么是TCP/IP、UDP? TCP/IP(Transmi转载 2014-08-26 14:05:35 · 436 阅读 · 0 评论 -
页式存储管理
基本原理 1.等分内存 页式存储管理将内存空间划分成等长的若干区域,每个区域的大小一般取2的整数幂,称为一个物理页面有时称为块。内存的所有物理页面从0开始编号,称作物理页号。 2.逻辑地址 系统将程序的逻辑空间按照同样大小也划分成若干页面,称为逻辑页面也称为页。程序的各个逻辑页面从0开始依次编号,称作逻辑页号或相对页号。每个页面内从0开始编址转载 2014-09-03 09:54:24 · 953 阅读 · 0 评论 -
linux 文件的作用
linux下的文件结构,看看每个文件夹都是干吗用的/bin 二进制可执行命令 /dev 设备特殊文件 /etc 系统管理和配置文件 /etc/rc.d 启动的配置文件和脚本 /home 用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示 /lib 标准程序设计库,又叫动态链接共享库,作用类似windows里的.dll文件 /sbin转载 2015-02-25 11:20:35 · 450 阅读 · 0 评论 -
uboot 2414.04 移植到S3C2440(start.s)
1 uboot启动过程和编译过程zaizhelijiubuxiangx原创 2014-06-13 10:38:26 · 1036 阅读 · 0 评论 -
uboot移植总结
几经周折终于完成uboot的移植,下面对uboot的移植过程进行一下总结:首先uboot是嵌入式开发过程中最常用的bootloader,它完成了硬件的初始化,并引导内核启动。Uboot的目的就是初始化硬件电路,保存某些信息给内核,然后把内核复制到SDRAM中,最终把控制权交给内核。如果我们不需要uboot的一些复杂的命令我们完全可以自己写一段代码来启动内核。移植linux内核之前我们要先看原创 2014-06-27 21:18:44 · 769 阅读 · 0 评论 -
Linux内核与根文件系统的关系
Linux内核与根文件系统的关系开篇题外话:对于Linux初学者来说,这是一个很纠结的问题,但这也是一个很关键的问题!一语破天机: “尽管内核是 Linux 的核心,但文件却是用户与操作系统交互所采用的主要工具。这对 Linux 来说尤其如此,这是因为在 UNIX 传统中,它使用文件 I/O 机制管理硬件设备和数据文件。”一.什么是文件系统文件系统指文件存在的物理空间,linu转载 2014-06-15 16:14:38 · 470 阅读 · 0 评论 -
U-boot的环境变量: bootcmd 和bootargs。
uboot中bootargs参数设置U-boot的环境变量值得注意的有两个: bootcmd 和bootargs。u-bootcmd 前面有说过bootcmd是自动启动时默认执行的一些命令,因此你可以在当前环境中定义各种不同配置,不同环境的参数设置,然后设置bootcmd为你经常使用的那种参数。u-bootargs bootargs是环境变量中的重中之重转载 2014-06-24 10:05:53 · 611 阅读 · 0 评论 -
s3c2410移植nand支持到uboot, 使用nand.c ,linux mtd 架构
s3c2410移植nand支持到uboot, 使用nand.c ,linux mtd 架构下面对nand flash的初始化代码nand_init()进行分析:1.如果定义(CONFIG_COMMANDS & CFG_CMD_NAND)没定义(CFG_NAND_LEGACY) 则start_armboot()调用driver/nand/nand.c中的nand_init()转载 2014-06-24 22:36:51 · 394 阅读 · 0 评论 -
(*(volatile unsigned long *)) 的理解(
(*(volatile unsigned long *)) 的理解(转载 2014-05-24 22:07:30 · 574 阅读 · 0 评论 -
uboot启动过程完全分析
1.1 U-Boot工作过程 U-Boot启动内核的过程可以分为两个阶段,两个阶段的功能如下: (1)第一阶段的功能Ø 硬件设备初始化Ø 加载U-Boot第二阶段代码到RAM空间Ø 设置好栈Ø 跳转到第二阶段代码入口 (2)第二阶段的功能Ø 初始化本阶段使用的硬件设备Ø 检测系统内存映转载 2014-06-09 22:51:14 · 448 阅读 · 0 评论 -
uboot编译过程完全分析
2.1 U-BootMakefile分析2.1.1 U-Boot编译命令 对于mini2440开发板,编译U-Boot需要执行如下的命令:$ make mini2440_config$ make all 使用上面的命令编译U-Boot,编译生成的所有文件都保存在源代码目录中。为了保持源代码目录的干净转载 2014-06-09 22:53:28 · 498 阅读 · 0 评论 -
Linux 字符驱动程序(一)
Linux 字符驱动程序(一)在linux内核中设备主要有三种:1 字符设备: •字符设备的读写以字节为单位,存取时没有缓存。 •对字符设备发出读写请求时,实际的硬件I/O紧接着就发生了。一般来说,字符设备不支持随机访问。 •典型的字符设备包括鼠标、键盘及串行口等。2 块设备: •块设备读写以块为单位,典型的块大小为512或原创 2014-07-18 16:57:32 · 678 阅读 · 0 评论 -
linux miscdevice 驱动程序
1 在Linux驱动中把无法归类的五花八门的设备定义为混杂设备(用miscdevice结构体表述)。miscdevice共享一个主设备号MISC_MAJOR(即10),但次设备号不同。 所有的miscdevice设备形成了一个链表,对设备访问时内核根据次设备号查找对应的miscdevice设备,然后调用其file_operations结构中注册的文件操作接口进行操作。 在内核中用struct m原创 2014-07-21 14:06:21 · 699 阅读 · 0 评论 -
为Linux内核打ARM补丁
首先从以下网站下载标准的Linux内核:http://www.kernel.org/pub/linux/kernel/v2.4/我们以2.4.18的内核为例,只需要下载2.4.18的版本的内核就可以了然后下载ARM系统所系的补丁,从以下网站可以得到ARM的补丁:http://www.arm.linux.org.uk/developer/v2.4/下载2.4.18-rmk补丁,使转载 2014-06-09 13:16:31 · 992 阅读 · 0 评论 -
字符设备驱动linux2.6
linux设备驱动程序之简单字符设备驱动一、linux系统将设备分为3类:字符设备、块设备、网络设备。使用驱动程序:1、字符设备:是指只能一个字节一个字节读写的设备,不能随机读取设备内存中的某一数据,读取数据需要按照先后数据。字符设备是面向流的设备,常见的字符设备有鼠标、键盘、串口、控制台和LED设备等。2、块设备:是指可以从设备的任意位置读取一定长度数据的设备。块设备包括硬盘转载 2014-07-21 16:13:07 · 479 阅读 · 0 评论 -
linux 驱动程序 中断机制
一、中断的概念中断是指在CPU正常运行期间,由于内外部事件或由程序预先安排的事件引起的CPU暂时停止正在运行的程序,转而为该内部或外部事件或预先安排的事件服务的程序中去,服务完毕后再返回去继续运行被暂时中断的程序。Linux中通常分为外部中断(又叫硬件中断)和内部中断(又叫异常)。在实地址模式中,CPU把内存中从0开始的1KB空间作为一个中断向量表。表中的每一项占4个字节。但是在保原创 2014-07-22 21:07:02 · 842 阅读 · 0 评论 -
linux kernel initiate steps
vmlinux被load到内存地址0,首先从地址0x8000开始执行,这段最开始的代码在arch/arm/kernel/head.S的ENTRY(stext)中。用arm-none-linux-gnueabi-objdump-d vmlinux后,可看到代码从0xc0008000开始,第一行代码正是ENTRY(stext)后的msr CPSR_c,#211。为什么是0xc0008000而不是0x8转载 2014-07-01 21:28:22 · 506 阅读 · 0 评论 -
Uboot2014.04移植到S3C2440(一)--编译过程
Uboot2014.04移植到S3C2440的编译过程原创 2014-06-12 22:37:49 · 1745 阅读 · 0 评论 -
linux设备驱动中file_operations结构体分析
linux设备驱动中file_operations结构体分析 struct module *owner第一个 file_operations 成员根本不是一个操作; 它是一个指向拥有这个结构的模块的指针. 这个成员用来在它的操作还在被使用时阻止模块被卸载. 几乎所有时间中, 它被简单初始化为 THIS_MODULE, 一个在 中定义的宏.loff_t (*llseek)转载 2014-07-24 14:26:53 · 462 阅读 · 0 评论 -
gcc 编译选项
简介2简单编译2.1预处理2.2编译为汇编代码(Compilation)2.3汇编(Assembly)2.4连接(Linking)3多个程序文件的编译4检错5库文件连接5.1编译成可执行文件5.2链接5.3强制链接时使用静态链接库1简介GCC 的意思也只是 GNU C Compiler 而已。经过了这么多年的发展,GCC 已经不仅仅能支持 C 语转载 2015-11-24 15:06:52 · 475 阅读 · 0 评论