
嵌入式学习
渣渣球技
菜鸟成长记
展开
-
uboot之硬件驱动部分
一、uboot和Linux驱动1、uboot本身是裸机程序裸机程序中是直接控制硬件的,但是操作系统中必须通过驱动来控制硬件。这2个的本质区别就是分层结构,因为在操作系统中需要按照操作系统的框架来部署驱动,也就是操作硬件的代码,按照操作系统规则来写代码。但是在裸机中没有这样的概念,分层的结构可以按照自己的思路,自己想怎么做就怎么做,所以uboot中的驱动和Linux中驱动是不同的。但是源代码...原创 2019-10-19 11:12:01 · 618 阅读 · 0 评论 -
uboot之环境变量
一、环境变量基础知识1、环境变量的作用环境变量的最大作用就是在我们不需要改变源代码的情况下,改变程序的执行情况。比如我们的bootdelay时间,通过修改对应的环境变量的值,就可以改变uboot开机延时的时间,而不需要修改源代码,然后编译,烧录。省去了很多的麻烦。uboot中两份环境变量,一份环境变量是程序中的,一份是存储在SD卡的环境变量分区中的。譬如我们的环境变量machid(机器...原创 2019-10-19 09:09:28 · 2975 阅读 · 0 评论 -
uboot学习之命令体系
一、uboot的命令体系基础1、uboot命令体系的实现在uboot/common/cmd_xxx.c中,有若干个.c文件,还包括common.c和main.c文件,2、每一个命令对应着一个函数,但是也不是完全对应的:一个函数对应着一个命令或者多个命令, 找到命令对应的函数,对应着关系; 以argc和argv的方式,进行传参;二、uboot的命令解析和执行过程分析1、从mai...原创 2019-10-18 18:59:07 · 248 阅读 · 0 评论 -
SD卡启动详解
一、存储设备的介绍1、主流的外部存储器介绍内存和外存的区别:RAM可以随机访问,以字节为单位,可以操作每一个地址。但是ROM就不可以了,只能以块为单位进行访问。RAM掉电数据丢失,而ROM则不会,掉电后数据是保存的。2、磁盘、CD、软盘、硬盘、光盘的区别与联系存储原理为磁存储,缺点是读写速度、可靠性等问题,优点是技术成熟、加个便宜,广泛使用在桌面电脑中,在嵌入式设备中几乎不使用。...原创 2019-10-18 10:18:35 · 2899 阅读 · 0 评论 -
在Ubuntu16.04中搭建tftp服务器
搭建tftp服务器1.首先需要安装 tftp-hpa,tftpd-hpa,前者是客户端,后者是服务程序,在终端下输入 sudo apt-get install tftp-hpa tftpd-hpa2.安装 xinetd,在终端下输入 sudo apt-get install xinetd3.进入根目录下的 etc 文件夹(cd /etc/),首先看目录中有没有一个xinetd...原创 2019-10-12 10:22:31 · 2762 阅读 · 0 评论 -
uboot之内核启动
uboot的最终目的就是用来启动内核,对于我们Inand版本的X210开发板来说,在uboot命令行执行bootm命令时,就去启动内核。那么uboot背后的机制是怎么样的呢?当我们输入bootm命令的时候,uboot会执行do_bootm函数。启动内核我们需要做的几件事情:step1:将内核从外部介质(SD卡、iNand等)中重定位到内存的相应位置step2:进行内核镜像种类的识别(zIm...原创 2019-10-12 09:50:20 · 568 阅读 · 0 评论 -
S5PV210时钟详解
一、时钟域的概念1、由于时钟体系复杂,内部外设模块太多,因此把整个内部的时钟划分为3大类。MSYS:CPU(Cortex-A8)、DRAM控制器(DMC0和DMC1),IRAM&IROM的时钟来源。 ARMCLK :给CPU内核工作的时钟,也就是我们经常说的主频; HCLK_MSYS:MSYS域的高频时钟,给DMC0和DMC1使用的; PCLK_MSYS:MSYS域的低频...原创 2019-09-29 17:31:19 · 1017 阅读 · 0 评论 -
链接脚本与重定位
一、位置有关代码和位置无关代码以前,我们编写程序的时候,根本不知道还有位置有关代码和位置无关代码,不知道代码的执行居然和代码的链接地址有关,当然也不知道链接地址是什么,但是在Linux的学习中,这些都是必须的。位置无关代码PIC:汇编源文件被编码成二进制可执行程序时编码方式与位置(内存地址)无关。位置有关代码:汇编源码编码成二进制可执行程序后和内存地址是有关的。链接地址:就是我们在...原创 2019-09-28 13:28:16 · 597 阅读 · 0 评论 -
uboot之主Makefile的分析
1、uboot版本号的确定VERSION = 1PATCHLEVEL = 3SUBLEVEL = 4EXTRAVERSION =U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)VERSION_FILE = $(obj)include/version_autogenerated.hU_BOOT...原创 2019-09-23 21:24:45 · 184 阅读 · 0 评论 -
uboot之启动文件start.S的分析
一、程序开头的确定当我们接收拿到一个项目的源代码,我们一般都会从main函数开始,进行分析。但是在uboot中,程序的入口不是main函数,那么我们怎么找到程序的入口。在uboot中,我们可以从uboot的链接脚本中,找到程序的入口,在链接脚本中,通过关键字ENTRY(_start)指定程序的入口为_start函数,这时候我们通过SI工具的搜索功能,找到该函数的所在的路径为./cpu/s5pc...原创 2019-09-23 20:36:10 · 1704 阅读 · 0 评论 -
SD卡启动方式之16个字节的校验头生成代码分析
/*/* * mkv210_image.c的主要作用就是由usb启动时使用的led.bin制作得到由sd卡启动的镜像210.bin * * 本文件来自于友善之臂的裸机教程,据友善之臂的文档中讲述,本文件是一个热心网友提供,在此表示感谢。 *//* 在BL0阶段,Irom内固化的代码读取nandflash或SD卡前16K的内容, * 并比对前16字节中的校验和是否正确,正确则继续,...原创 2019-09-23 12:34:24 · 272 阅读 · 0 评论 -
uboot的学习之源码目录分析
文件分析:1、.gitignore。是git工具的文件,git是一个版本管理工具。2、arm_config.mk是Makefile文件,在将来的某个Makefile会调用该文件。3、changlog相关的三个文件,修改记录文件,这些文件记录了这个uboot项目版本变迁以及每个版本的改变。4、config.mk也是Makefile文件,是很重要的一个文件。5、copying,版权...原创 2019-09-21 08:14:58 · 254 阅读 · 0 评论 -
嵌入式之Makefile的学习
本文章适用于从事嵌入式uboot移植,和驱动开发的工程师阅读,涉及到的知识点比较基础,涉及内容不是那么深入。首先Makefile是管理一个大型项目必须的文件,当一个项目中涉及到多个C语言程序,和.h头文件程序,这种情况下就必须使用到Makefile进行项目的编译和链接。Makefile文件的格式:目标:依赖TAB命令命令前面是一个Tab键,当且仅当是Tab按键,不能是空格,必须是一...原创 2019-09-17 14:29:54 · 686 阅读 · 0 评论 -
嵌入式之Shell学习
shell是一种脚本语言,和C语言一样都是为了完成某些功能,但是shell语言和C语言也有不同的地方,首先是shell不用编译,源代码直接解释执行,就是编写源代码之后,可以直接执行,不用像C语言那样,必须编译成可执行程序,才能够执行。下面对shell语言进行简单的讲解,目的在于能看懂嵌入式中所涉及的shell程序,能够自己改写,不要求完全自己掌握shell语言。一、shell语言的编写格式。...原创 2019-09-16 17:27:53 · 739 阅读 · 0 评论