自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

嵌入空间

嵌入空间

  • 博客(61)
  • 资源 (31)
  • 收藏
  • 关注

原创 The Linux Kernel ktime

CLOCK_TAI。

2023-10-18 17:36:27 324

原创 ARM跑马灯·汇编程序详细解析 .

本人使用的是TQ2440开发板,主芯片是S3C2440,它一共有130个I/O端口,分为9组:GPA、GPB...GPJ。   对于这几组GPIO引脚,它们的寄存器是相似的:   GPxCON:用于选择引脚功能   GPxDAT:用于读、写引脚数据   GPxUP:用于确定是否使用内部上拉电阻 ,其中无GPAUP寄存器!注意:PORT A与PORT B~PORT J 在功能选择

2014-10-23 21:16:18 2410

转载 Linux操作系统根文件系统的启动分析

一般的系统是先启动/sbin/init,但是也可通过启动参数指定init=来确定,如:我的系统就是制定的init=/linuxrc,因为文件系统是采用busybox的,而linuxrc。也是一个指向busybox的文件,不过不确认它指向具体哪个指令。不过可能是/sbin/init。init进程的主要任务是按照inittab文件所提供的信息创建进程,由于进行系统初始化的那些进程都由i

2013-03-14 12:33:12 612

转载 dd命令的高级应用

dd是Linux上的一个常用的命令。 例如:dd if=/1.txt of=/tmp/2.txt     (其中, if代表input file;of代表output file, 命令的结果就是将根目录下的1.txt的内容拷贝到/tmp目录的的2.txt。)     当然,如果只是用dd做这样的事情显然大材小用了,因为cp可以干同样的事情,而且更简单。      下面就介绍一下

2013-03-14 12:25:52 1120

转载 linux 下查找文件或者内容常有命令

whereis 查找软件的安装路径-b 只查找二进制文件-m 只查找帮助文件-s 只查找源代码-u 排除指定类型文件-f 只显示文件名-B 在指定目录下查找二进制文件-M 在指定目录下查找帮助文件-S 在指定目录下查找源代码locate 在文件索引数据库中搜索文件-d 搜索指定数据库updatedb更新文件索引数据库f

2013-03-12 18:03:12 613

转载 LINUX 根文件系统加载,不同文件系统的挂载和 操作方法(VFS虚拟文件系统) --2

Linux启动盘boot/root盘的制作boot/root盘由两部分组成,即核心和根文件系统。要把这两部分都放到一个1.44MB的软盘上去,通常要对内核和根文件系统进行压缩,压缩核心的最好方法是进行重新编译内核,将一些不必要的支持去掉,如对网络和其它周边设备的支持,重要的一点是记住内核必须支持RAMDISK及ext2,否则系统不能正常引导。关于内核的编译本文不再阐述,下面重点介绍如何生成根文

2013-03-12 18:02:34 1574

转载 uboot从usb(fat)分区加载内核

第一步:内核的支持。修改linux source中的.config文件。CONFIG_CMDLINE="console=ttyS0,115200 mem=160m ip=off noinitrd root=8:1 rw rootfstype=ext2 rootdelay=10"8为sda(即U盘)的主设备号,1为第一个分区,是ext2系统,rootdelay表示延迟10秒加载,原因为u

2013-03-06 17:38:07 1551

转载 使Uboot支持USB的步骤

今天查看了一下在P4080DS板子的U-Boot中支持USB,主要是加入USB Host端驱动和相应设备端驱动来支持存储设备,这样就 可以将Kernel以及文件系统存放在U盘上,来通过U盘来启动。跟其它接口一样,在U-Boot中,USB的支持也是通过放在相应板子上的几个宏定义来实现,对于P4080DS板,是在include/configs/corenet_ds.h定义:----------

2013-03-06 17:36:47 1797

转载 linux开机过程中的内核打印

前言嵌入式开发中, 通常使用串口输出调试信息,了解运行状态。 内核启动过程中,在不同阶段会通过不同的方式将调试信息输出到串口。 (注:以下内容针对 arm-linux.)解压缩阶段解压缩阶段内核会输出:Uncompressing Linux................................ done, booting the kernel. 查

2013-03-04 11:58:16 781

转载 在嵌入式Linux上构建2个串口控制台

当前的很多嵌入式系统很多使用2个串口来进行通讯,一个串口常常作为命令行串口,给用户使用。而另一个串口可以用来通信或者作为调试串口使用。    本文以两个串口在Linux下 一个作为调试串口,另一个作为用户命令行串口为例说明。首先,ttyS0作为调试串口,而ttyS1作为命令行串口使用。等系统启动后,命令行串口对用户是可见的,用户可以操作。而调试串口只给开发人员使用。    在系统启

2013-03-04 11:57:24 1259

转载 将linux启动由com0转为com1,只需要修改:

总结:将linux启动由com0转为com1,只需要修改:(1)uncompress.c,将启动输出设为uart0(2)在serial8250_init()之中加入myinit(),保证uart1能够工作(3)修改serial.h 将uart1设置为正确的地址(5)修改启动参数加入console=ttyS1,115200n8(4)修改/etc/inittab保证启动之后,使用t

2013-03-04 11:56:30 577

转载 嵌入式Linux内核移植相关代码分析

饮水思源 - 主题文章阅读  [讨论区: Embedded]本主题共有 6 篇文章,分 1 页, 当前显示第 1 页 [返回讨论区][回复本文][原帖] 发信人: patrickzhang (一塌糊涂), 信区: Embedded标 题: 嵌入式Linux内核移植相关代码分析发信站: 饮水思源 (2006年12月13日10:37:42 星期三)

2013-02-28 17:48:19 531

转载 华为--C++ 笔试面试题目

本文的写作目的并不在于提供C/C++程序员求职面试指导,而旨在从技术上分析面试题的内涵。  许多面试题看似简单,却需要深厚的基本功才能给出完美的解答。企业要求面试者写一个最简单的strcpy函数都可看出面试者在技术上究竟达到了怎样的程度,我们能真正写好一个strcpy函数吗?我们都觉得自己能,可是我们写出的strcpy很可能只能拿到10分中的2分。读者可从本文看到strcpy函数从2分到10分

2013-02-28 17:42:59 411

转载 ARMlinux kernel 启动之start_kernel (二)

了解完kernel启动以前的汇编之后我们来看看正式的c语言启动代码,也就是我们的start_kernel函数了。start_kernel相当大,里面每一个调用到的函数都足够我们伤脑筋了,我这里只是浅尝辄止的描述一下函数的功能,从而对kernel启动的过程有一个比较直观的了解。很多函数真正理解需要对linux相关体系有很深的了解,暂时没有时间深入,留待以后了。       说实话启动的代码看到现

2013-02-28 17:39:19 376

转载 ARM linux kernel启动流程 head.S(一)

1. kernel运行的史前时期和内存布局在arm平台下,zImage.bin压缩镜像是由bootloader加载到物理内存,然后跳到zImage.bin里一段程序,它专门于将被压缩的kernel解压缩到KERNEL_RAM_PADDR开始的一段内存中,接着跳进真正的kernel去执行。该kernel的执行起点是stext函数,定义于arch/arm/kernel/head.S。在分析st

2013-02-28 17:38:42 563

转载 制作linux下根文件系统

(1)创建根文件系统的基本目录结构。我把这个过程做成了shell脚本(文件名为mkroot) ,很方便! #! /bin/sh    echo "creatint rootfs dir......"    mkdir rootfs    cd rootfs    echo "making dir : bin dev etc lib proc sbin sys usr"

2013-02-26 17:46:44 573

转载 LDR指令详解(转载)

LDR指令详解(2009-10-27 11:26:31)ARM指令集中,LDR通常都是作加载指令的,但是它也可以作伪指令。(1)LDR   r0,=name,像这种带等号的是伪指令,而不是ARM指令,LDR 伪指令用于加载立即数或一个地址值到指定寄存器.*如果name是立即数的话:LDR R0,=0X123;//将0X123存入R0       *如果name是个标识符:LDR

2013-02-25 12:23:20 1375

转载 ARM跑马灯·汇编程序详细解析

本人使用的是TQ2440开发板,主芯片是S3C2440,它一共有130个I/O端口,分为9组:GPA、GPB...GPJ。   对于这几组GPIO引脚,它们的寄存器是相似的:   GPxCON:用于选择引脚功能   GPxDAT:用于读、写引脚数据   GPxUP:用于确定是否使用内部上拉电阻 ,其中无GPAUP寄存器!注意:PORT A与PORT B~PORT J 在功能选择

2013-02-25 12:18:22 1362

转载 使Uboot支持USB的步骤

今天查看了一下在P4080DS板子的U-Boot中支持USB,主要是加入USB Host端驱动和相应设备端驱动来支持存储设备,这样就 可以将Kernel以及文件系统存放在U盘上,来通过U盘来启动。跟其它接口一样,在U-Boot中,USB的支持也是通过放在相应板子上的几个宏定义来实现,对于P4080DS板,是在include/configs/corenet_ds.h定义:----------

2013-02-21 22:28:33 3321

转载 s3c2410移植nand支持到uboot, 使用nand.c ,linux mtd 架构

-boot-1.1.6与1.1.4相比,两者有较大的不同,1.1.6 更像是复制了 kernel 的方法来实现。下面对nand flash的初始化代码nand_init()进行分析:1.如果定义(CONFIG_COMMANDS & CFG_CMD_NAND)没定义(CFG_NAND_LEGACY) 则start_armboot()调用driver/nand/nand.c中的na

2013-02-18 23:01:43 483

转载 解决undefined reference to `__aeabi_uidivmod'、 `__aeabi_uidiv'错误

自己写裸机驱动程序时,使用了除法,在链接的时候出了如下错误:  使用的编译器是:  后来上网搜了一下原因,由于编译器不支持除法运算,但是也没有搜到解决方案。看了一下代码确实用到了除法,把除法去掉可以正常连接通过。后来想了想了,之前编译内核和编译u_boot都是这个编译器的呀,他们肯定有除法运算呀,他们是怎么做到的呢?于是看了一下u_boot的Makefile

2013-02-18 13:16:16 1181

转载 U-Boot操作Flash (NOR, NAND & SPI)

U-Boot中操作三种flash的命令集:                 Action                                          NOR                                              NAND                                           SPICopy Flash

2013-02-05 12:07:42 4080

转载 CFI Flash, JEDEC Flash ,Parellel Flash, SPI Flash, Nand Flash,Nor Flash的区别和联系

CFI Flash, JEDEC Flash ,Parellel Flash, SPI Flash, Nand Flash,Nor Flash的区别和联系简单说就是,Flash,按照内部访问接口不同,分为两种,一种是就像访问SDRAM一样,按照数据/地址总线直接访问的Nor Flash,另一种是只有8位(X8)/16位(X16)或者更多(X32/…)位宽的总线,每次访问,都要将长地址分

2013-02-05 12:03:23 1154

转载 u-boot的重要细节

主要分析流程中各函数的功能。按启动顺序罗列一下启动函数执行细节。按照函数start_armboot流程进行分析:    1)DECLARE_GLOBAL_DATA_PTR;     这个宏定义在include/global_data.h中:     #define DECLARE_GLOBAL_DATA_PTR     register volatile gd_t *gd asm ("

2013-02-04 17:35:23 530

转载 U-BOOT源码分析及移植

本文从以下几个方面粗浅地分析u-boot并移植到FS2410板上:1、u-boot工程的总体结构2、u-boot的流程、主要的数据结构、内存分配。3、u-boot的重要细节,主要分析流程中各函数的功能。4、基于FS2410板子的u-boot移植。实现了NOR Flash和NAND Flash启动,网络功能。 这些认识源于自己移植u-boot过程中查找的资料和对源码的简单阅读。下

2013-02-04 17:34:10 437

转载 C语言字符串函数集锦(二)

说起字符串函数,我想大家都不陌生。字符串函数对二进制数据、字符串和表达式执行不同的运算。下面总结了C语言中的字符串函数。13、函数名: strncmpi功 能: 把串中的一部分与另一串中的一部分比较, 不管大小写用 法:int strncmpi(char *str1, char *str2);  程序例:#include    #includ

2013-02-01 09:53:20 349

转载 C语言字符串函数集锦(一)

说起字符串函数,我想大家都不陌生。字符串函数对二进制数据、字符串和表达式执行不同的运算。下面总结了C语言中的字符串函数。1、函数名: stpcpy功 能: 拷贝一个字符串到另一个用 法:char *stpcpy(char *destin, char *source);  程序例:#include    #include    int main

2013-02-01 09:51:29 249

原创 __attribute__机制使用实例

typedef int (*obds_test_t) (void); #define RUN_TEST_COMMON(name, func)                         \    static int obds_##func (void)                           \    {

2013-01-31 12:34:38 511

原创 imx53 计算各个模块的时钟函数

/*! * This function returns the low power audio clock. */u32 get_lp_apm(void){    u32 ret_val = 0;    u32 ccsr = readl(CCM_BASE_ADDR + CLKCTL_CCSR);     if (((ccsr >> 10) & 1) == 0) {

2013-01-30 17:33:31 826

原创 imx53 时钟设置过程和详细说明

/* The function prog_pll sets up all four PLLs as follows:    PLL1 800MHz    PLL2 400MHz    PLL3 216MHz    PLL4 595MHz */void prog_pll(void){    // Clear ESDCTL configuration bit to al

2013-01-30 17:31:56 1240

原创 imx53 时钟dpll分析

DPLL reference clockThere are four DPLL's in i.MX53 project namely:• DPLL-1 (typical functional frequency 800Mhz)• DPLL-2 (typical functional frequency 400Mhz)• DPLL-3 (typical functional freq

2013-01-30 17:29:59 877

原创 最享受的事

住英国房子,用中国厨师,娶日本女人,拿美国工资与此相对,最要命的事,是住日本房子,用英国厨师,娶美国女人,拿中国工资

2013-01-30 09:45:02 314

原创 完成16进制数到10进制转换

/* slen - streng length, e.g.: 23 -> slen=2; abcd -> slen=4 *//* only convert hex value as string input. so "12" is 0x12. */static u32 quick_atoi(char *a, u32 slen){ u32 i, num = 0, digit; f

2013-01-29 17:38:08 474

原创 AHB、APB简介

AHB主要用于高性能模块(如CPU、DMA和DSP等)之间的连接,作为SoC的片上系统总线,它包括以下一些特性:单个时钟边沿操作;非三态的实现方式;支持突发传输;支持分段传输;支持多个主控制器;可配置32位~128位总线宽度;支持字节、半字节和字的传输。AHB 系统由主模块、从模块和基础结构(Infrastructure)3部分组成,整个AHB总线上的传输都由主模块发出,由从模块负责回应。基础结构

2013-01-29 17:36:28 837

转载 宝宝受不了挫折的5大原因 6招让孩子变坚强

如今的孩子多是家中独苗,被满满当当的爱包围着,承受力普遍较差。而日后成功者,必定要有所担当,能耐得住生活中的各种考验。这个道理再简单不过,但很多家长爱子心切,做起来还是犯了傻。 孩子为啥“受不了丁点委屈、吃不得一点苦”?本期,记者联合3位资深嘉宾一起探寻出五大形成“病因”,并开出几种对症性“疗方”。要想让孩子的内心变得强大起来,也许你还得学着做一个“爱而不露”的家长,甚至故意给孩子制造

2013-01-28 22:48:08 1112

转载 uboot命令解释与运行分析

这一回来分析一下uboot中命令行的解释, 所以我们直接从main_loop开始分析.1. 从汇编阶段进入c阶段的第一个函数是start_xxx, 如/lib_unicore/board.c中的start_unicoreboot. 前半部分调用了若干初始化函数来进行部分硬件的初始化, 并设置一下环境. 这里不是我们本回要讨论的所以一一跳过. 在start_xxx的最后调用了main_loop(

2013-01-25 17:34:41 448

转载 uboot命令大全

U-Boot还提供了更加详细的命令帮助,通过help命令还可以查看每个命令的参数说明。由于开发过程的需要,有必要先把U-Boot命令的用法弄清楚。接下来,根据每一条命令的帮助信息,解释一下这些命令的功能和参数。1、bootmbootm [addr [arg ...]]- boot application image stored in memorypassing arg

2013-01-25 17:33:19 374

原创 Uboot中raise: Signal # 8 caught解决

同样首先找到这句话在程序中的位置,如下:/lib_arm/eabi_compat.cint raise (int signum){         printf("raise: Signal # %d caught\n", signum);         return 0;}再搜索这个函数的调用情况,可是怎么找不到对应的程序,不知道为什么?求解?没能找到根本原因,

2013-01-25 17:30:01 1615

原创 Uboot中*** Warning - bad CRC or MMC, using default environment解决

首先找到打印此信息的位置,搜索可知在/common/env_cmm.c文件中。程序如下:#if !defined(ENV_IS_EMBEDDED)static void use_default(){         puts ("*** Warning - bad CRC or MMC, using default environment\n\n");         se

2013-01-25 17:28:44 6268

转载 uboot第一阶段详细分析

uboot的第一阶段设计的非常巧妙,几乎都是用汇编语言实现的,下面我们一起来看看它的精妙之处吧!首先我们来看一下它的链接脚本,通过它我们可以知道它整个程序的各个段是怎么存放的。OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")        OUTPUT_ARCH(arm)        EN

2013-01-24 12:44:04 561

飞思卡尔i.MX6平台DRAM接口高阶应用指导-DDR3篇

飞思卡尔i.MX6平台DRAM接口高阶应用指导-DDR3篇飞思卡尔i.MX6平台DRAM接口高阶应用指导-DDR3篇

2017-10-24

Guide toWriting and Porting Device

Guide toWriting and Porting Device Drivers

2013-01-09

基于FPGA 的步进电机正弦波细分驱动器设计

基于FPGA 的步进电机正弦波细分驱动器设计

2013-01-09

i.MX53手册

i.MX53i.

2012-12-18

imx53_quick_start_schematics

imx53_quick_start_schematics

2012-12-18

MC34708手册

MC34708.

2012-12-18

MT41J128M16HA-15E

MT41J128M16HA-15E

2012-12-18

QS_HW_User_Guide

QS_HW_User_Guide QS_HW_User_Guide

2012-12-18

mx53 模块测试程序 飞思卡尔原版

mx53 模块测试程序 飞思卡尔原版 测试可用。

2012-12-18

原理图+PCB OrCAD+Allegro格式官方的板子

原理图+PCB OrCAD+Allegro格式,真正是官方的板子

2012-12-18

S3C6410_用户手册

S3C6410_用户手册

2012-09-06

Linux下的shell编程入门

Linux下的shell编程入门

2012-09-06

K9F1G08UOM中文数据手册

K9F1G08UOM中文数据手册

2012-09-06

u盘芯片检测工具

用于检测u盘芯片的工具。亲自测试过可以使用。

2012-05-15

分散加载scatterloading文件及其应用

分散加载scatterloading文件及其应用

2011-11-28

scatter文件详解

scatter文件详解scatter文件详解

2011-11-28

ADS1.2教程

ADS1.2教程

2011-11-28

crc校验原理

crc校验原理crc校验原理crc校验原理crc校验原理

2011-11-28

Xmodem文件传输协议

Xmodem文件传输协议

2011-11-28

ADPCM压缩算法程序

ADPCM压缩算法程序ADPCM压缩算法程序ADPCM压缩算法程序

2011-11-28

ADPCM源代码含调用例子

ADPCM源代码含调用例子

2011-11-28

三种SPWM算法源码

三种SPWM算法源码三种SPWM算法源码三种SPWM算法源码

2011-06-22

基于STM32的USB程序开发笔记

基于STM32的USB程序开发笔记基于STM32的USB程序开发笔记基于STM32的USB程序开发笔记

2011-06-22

DSP_入门教程(精华版)

DSP_入门教程(精华版)DSP_入门教程(精华版)DSP_入门教程(精华版)

2011-06-21

USB的“JoyStickMouse”源代码分析 01

USB的“JoyStickMouse”源代码分析 01

2011-06-21

C 语 言 深 度 剖 析

C语言深度剖析C语言深度剖析C语言深度剖析

2011-06-21

U S B 设 备 枚 举 过 程

U S B 设 备 枚 举 过 程

2011-06-21

I2C总线芯片AT24C02程序设计(精简版)

I2C总线芯片AT24C02程序设计(精简版)I2C总线芯片AT24C02程序设计(精简版)I2C总线芯片AT24C02程序设计(精简版)

2010-12-21

18B20温度传感器应用解析(中)

18B20温度传感器应用解析(中)18B20温度传感器应用解析(中)18B20温度传感器应用解析(中)18B20温度传感器应用解析(中)18B20温度传感器应用解析(中)

2010-12-21

AVR AD(模数)转换范例

AVR AD(模数)转换范例AVR AD(模数)转换范例AVR AD(模数)转换范例

2010-12-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除