自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 资源 (1)
  • 问答 (3)
  • 收藏
  • 关注

原创 container_of宏到底做了什么???

首先,她的作用是: 如果知道了结构体中某个元素的指针,就可以利用该宏得到指向结构体首地址的指针,这样可以用指针访问结构体的所用变量。在Linux内核中,她的定义如下:#define container_of(ptr, type, member)  ({            \    const typeof(((type *)0)->member) * __mptr = (ptr...

2018-09-23 16:57:04 214

原创 分析uboot启动过程

1、uboot的作用。相比于linux操作系统,uboot本身不大,能够自启动,作为嵌入式设备的引导启动,是个好的选择。此外,它具有源码开放、支持多种嵌入式操作系统、丰富的设备驱动源码等特点。作用:1)、为系统启动之前初始化硬件设备、为操作系统准备软件环境。2)、引导操作系统内核启动。 2、uboot如何启动内核、如何传参给内核?2.1、如何启动内核?在嵌入式设备没

2017-12-26 22:41:57 489

原创 Makefile简单介绍

1.gcc 的使用:把源文件编译成.o文件: gcc -c源文件 -o目标文件把.o文件编译成可执行文件: gcc 目标文件 -o 执行文件gcc 常用的选项:-c: 生成.o文件-o: 指定生成的名字-I: 添加头文件搜索路径-L: 添加库搜索路径-Wall: 列出所有警告信息2.Makefile 文件的

2017-10-07 15:25:02 251

原创 C语言存储类

存储类、 作用域、 生命周期、 链接属性C 语言符号有 3 种连接属性: 外部连接、 内部连接、 无连接。内存有多种管理方法: 栈、 堆、 数据段、 bss 段、 .text 段······一个变量的存储类属性就是描述这个变量存储在何种内存段中。代码段: 在 Linux 中又叫文本段(.text) 。只读数据段: const 修饰的变量一般存在这段中, 不同平台可能不一样。数据

2017-09-27 22:50:11 241

原创 安装交叉编译工具链

版本为---arm-2009q3.tar.bz2虚拟机---ubuntu10.4指定相应的安装路径,如/usr/local/mushan_arm,将安装包解压到该目录下:tar -jxvf arm-2009q3.tar.bz2(这个是当前路径中执行)。OK,此时的应用程序就被安装在/usr/local/mushan_arm/arm-2009q3/bin目录下了。

2017-09-26 20:51:56 359

原创 S5PV210启动过程分析

25287827

2017-09-23 23:04:24 246

原创 ARM汇编的一些常识

常用ARM指令       1. 数据传传输指令         mov   例:mov r1 r2  @两个寄存器数据之间的传递   mvn   与mov的区别是:mov是原封不动的将数据传输,而mvn是将数据按位取反后再传递       2. 算术指令           add sub rsb adc sbc rsc        3. 逻辑指令   

2017-09-22 23:28:33 556

原创 S5PV210的定时器

一、PWM定时器S5PV210有5个PWM定时器,其中0、1、2、3各自对应一个外部GPIO,可以通过这些对应的GPIO产生PWM波形信号输出。5个PWM定时器的时钟源为PCLK_PSYS,Timer0和Timer1共同使用一个预分频器、Timer2、3、4共同使用一个预分频器;每个timer有一个专用的独立的分频器;预分频器和分频器构成了2级分频系统,将PCLK_PSYS两级分频后生成...

2017-09-19 21:32:53 905

原创 S5PV210中断系统

中断实现机制:异常向量表1、中断是指CPU在执行程序的过程中,遇到异常情况需要处理,CPU就会中断当前的程序,保存当前程序运行处的必要参数,跳去执行异常程序,处理结束后再返回之前程序的间断处,继续执行原程序。2、异常向量表是CPU中某些特定地址的特定定义,当中断发生时会去该向量表查询对应的异常事件,并处理该事件,完成后返回。3、对于SOC来说,发生复位、软中断、中断、快速中断、取指令异...

2017-09-19 21:24:15 1420

原创 S5PV210时钟系统

一、时钟来源SOC一般的时钟来源有:1.外部时钟信号直接输入2.外部晶振+内部时钟发生器3.外部晶振+内部时钟发生器+PLL倍频+内部分频到各各外部时钟S5PV210建议的工作频率:800MHz-1.2GHz,一般设置为1GHz。二、S5PV210时钟系统有3个时钟域:MSYS、DSYS、PSYS各域对应的时钟:1.MSYS:CPU(cortex-A8内核...

2017-09-19 20:54:54 712

原创 SDRAM和重定位

一、栈的介绍1.设置栈的原因:C语言运行需要一定条件,那就是栈,而这些栈应该在启动代码运行时分配,以供后面C语言的运行。2.C语言与栈的关系:C语言的局部变量都需要栈来实现。如果在启动代码开始时,没有给C部分设置合理的栈地址,那么C语言的局部变量就找不到地方存放,导致程序死掉。3.CPU在各种模式下的栈:每种模式下都有自己独立的SP寄存器(r13),在各种模式下使用不同的栈,每个应用程

2017-09-19 20:44:11 699

原创 给uGUI添加自定义中文字库

给uGUI添加自定义的中文字库 1.如何生成中文字库文件? 利用UCGUIGenApp软件生成.c字库文件,添加到工程中,打开此文件如图所示,然后复制GUI_FontHZ_Vladimir_Script_21字库名,将其添加到ucgui系统中。(导出前先选“选择字体”,“指定范围导出GBK码”是我们自定义显示的字符,“导出GBK码.C文件”是导出全部中文字库) 

2017-09-10 23:05:05 1846

原创 linux根文件系统

根文件系统为什么需要根文件系统? 1、init进程的应用程序挂在根文件系统上。2、根文件系统提供了根目录 / 。3、内核启动后的应用层配置(etc目录)在根文件系统上。(可以认为,发行版 =内核+rootfs)。4、Shell命令程序在根文件系统上(ls、cd等)。 (可以说,内核配上rootfs才能工作) 根文件系统什么?是特殊用途的文件系统,某种文件系统的格式。

2017-06-15 22:58:07 504

原创 内核启动分析

内核启动分析顶层Makefile分析:和uboot的Makefile写法、规则等是一样的。 在编译内核时,也可以通过命令行给内核Makefile传参。(make o=XXX,指定不在源代码目录下编译,而是到另一个单独文件夹下编译)两个重要参数:ARCH和CROSS_COMPILE。ARCH决定当前配置编译的路径,如ARCH = arm的时候,将来在源码目录下去操作的arch/arm目录

2017-06-15 22:55:55 391

原创 linux内核配置

操作系统的核心功能1、内存管理2、进程调度3、硬件设备管理4、文件系统操作系统的一些拓展功能协议栈 应用程序包 内核根目录下的主要文件介绍1、Kbuild  (kernel build)  即是内核编译,是linux内核编译体现需要的。2、Makefile  用来管理整个工程,内核的总Makefile 。 目录介绍1、arch  不同架构CP

2017-06-15 22:53:23 1811

原创 mkconfig脚本分析

mkconfig脚本分析 开发板使用的CPU是S5PV210,所以要找uboot中针对S5PV210或者S5PC110进行移植的作为参考。参考include/configs/s5p_goni.h,对应的board在uboot/board/samsung/goni这个目录。 对应的cpu、board文件夹分别为:cpu: u-boot-2013.10\arch\arm\cpu

2017-06-15 22:50:37 387

原创 从三星官方移植uboot

从三星官方移植uboot 一、移植总体步骤1、前提安装正确的交叉编译工具链,在Makefile中可查看。2、配置使用:make smdkv210single_config,此宏定义所在目录为    /include/configs/smdkv210single.h3、配置完后,make distclean  make smdkv210single_config  make

2017-05-01 15:56:50 1277

原创 uboot的环境变量

uboot的环境变量1、环境变量的作用我们可以不用修改uboot的源代码,而是通过修改环境变量来影响uboot运行时的一些数据特征和特性。比如更改bootdelay、baudrate等环境变量时,不用到uboot源码去修改代码,然后重新编译下载,而是在终端下更改就行。如更改bootdelay: 2、环境变量的优先级如果uboot代码当中有一个值,环境变量中也有一个值,那么ubo

2017-04-23 13:43:19 338

原创 S5PV210 DNW刷机

S5PV210  DNW刷机事先做的准备1.安装好驱动,并且保证DNW软件能下载。2.打开SecureCRT,确保能接收显示数据。3.设置启动方式为 [OM0:OM5]=[101101]。步骤1.按住开机键,DNW下载地址配置为0xd0020010,下载x210_usb.bin文件。   2.DNW下载地址设置为23e0000

2017-04-22 21:16:09 714 1

原创 SD卡刷机笔记

SD卡刷机笔记                            一、破坏iNand  首先破坏iNand中的BootLoader,以便让系统从SD启动。  破坏的方法:系统正常启动成功后,进入控制台执行以下两条命令。   1.busybox dd if=/dev/zero of=/dev/block/mmcblk0 bs=512

2017-04-22 21:05:53 791

原创 uboot的命令体系

uboot的命令体系1、uboot中的命令在哪里存放?在uboot/common/cmd_xxx.c中,有若干个.c文件和命令体系有关。每个命令对应一个函数,如bmp命令所执行的函数是do_bmp,函数的格式通常为do_xxx。2、命令参数以argc和argv传给函数有些uboot的命令支持传递参数。如help命令,int do_h

2017-04-22 16:37:46 354

原创 uboot如何启动内核?

uboot如何启动内核? 1、操作系统运行起来后分为两内核层和应用层。两层的权限不同,内核可以直接访问硬件,而应用层对硬件的访问遭到了限制。(uboot的镜像是u-boot.bin,Linux的镜像是zImage)2、SD卡中的特定分区在没有上电时,bootloader(引导区)、kernel(内核)、rootfs(文件系统)等必要

2017-04-22 16:36:06 1307

原创 uboot实验

uboot实验1、首先将上次编译调试的结果擦除掉,执行make distclean命令。2、实验时可能要改动配置文件,改动后需要重新配置,执行make     x210_sd_config命令。3、进行重新编译,执行make命令。以下是对版本号修改的实验。 修改完后保存退出,在uboot根目录下执行make distclean,然后配置make x210_sd_conf

2017-04-22 16:31:54 560

原创 Uboot启动的第二阶段

Uboot启动的第二阶段一、第二阶段该做哪些以及Start_armboot从第一阶段可知,第一阶段主要初始化了SOC内部的一些片内外设(看门狗、时钟等),然后初始化DDR并完成了重定位。那么第二阶段做啥?第二阶段主要初始化SOC外部的硬件(iNand、网卡芯片、LCD控制器等)和uboot本身的一些东西(uboot的命令、环境变量等....),

2017-04-22 16:29:27 558

原创 Uboot的Start.S文件分析

Uboot的Start.S文件分析1.Start.S的执行入口。首先由u-boot.lds中找到Start.S的入口,整个程序的入口取决于连接脚本中ENTRY声明的地方,ENTRY(_start)的_start符号所在文件就是整个程序的起启文件,_start所处的代码就是整个程序的起启代码。U-boot.lds在uboot中的位置:xxx\ub

2017-04-22 16:24:27 614

原创 uboot的Makefile分析

uboot的Makefile分析1.uboot的版本号VERSION = 1   //主版本号PATCHLEVEL = 3  //次版本号SUBLEVEL = 4   //第三版本号EXTRAVERSION =  //另外附加的版本号信息Makefile最终生成一个变量U_BOOT_VERSION,这个变量记录了makefile

2017-04-22 16:14:42 370

原创 U-boot目录简介

U-boot目录简介1.文件介绍Gitignore:Git是一个版本管理工具(类似SVN)。Arm_config.mk:后缀是.mk,是一个makefile文件,其他的makefile文件可以调用。Changelog:修改记录文件,记录u_boot项目的版本变迁以及每个版本较上版本的修改记录。Config.mk:和arm

2017-04-22 16:11:47 388

原创 X210的uboot配置和编译

X210的uboot配置和编译uboot的来源:1.uboot的官网下载(uboot的源头)。2.SOC厂商为自己SOC配置的uboot。3.开发板的话,直接从开发板供应商下载最为简便。Uboot根目录下配置编译1.选择qt_x210v3s_160307.tar.bz2压缩文件放在/root/x210v3_bsp目录下,再进行对其解压tar -jxvf qt_x210v3s

2017-04-22 16:01:29 569

原创 shell和Makefile

Shell的介绍Shell是操作系统的终端命令行,是一类编程语言(叫脚本语言),常用的shell语言有sh、bash、csh、ksh、perl、python。在Linux下常用的脚本语言是bash、sh。Shell脚本的运行机制:解释运行。不像C语言那样,编译链接形成二进制文件才能执行,脚本语言编写好后代码可以直接运行,并没有编译链接过程(可能是逐行解释时已经转换成二进制)。Shell程序是文

2017-04-22 15:56:22 543

原创 Uboot预备知识

Uboot预备知识 什么是uboot? uboot是SourceForge上的开源项目,是德国人最早发起的,最后由整个网络上所有感兴趣的人共同维护发展而来的一个bootloader。Uboot全称universal bootloader(通用的启动代码)遵循GPL条款的开放源码项目。 可移植性强,支持多种处理器系列。 为什么要有uboot?计算机运行时需要的三大

2017-04-22 15:48:42 363

uboot启动过程分析

uboot启动过程中做了什么,怎么传参给内核,怎么启动内核。.....。。。。。。。。。。。。。

2017-12-26

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

TA关注的人

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