- 博客(26)
- 资源 (12)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 u-boot第二阶段start.s分析:start_armboot部分(二):分析run_command函数
上一节分析到了main_loop,那么这个main_loop是怎么回事呢?就是在u-boot设置环境参数的时候等待用户输入并做处理,当处理完成就是一个循环了。 接下来接着上节分析main_loop,该函数是在common\Main.c里被定义:void main_loop (void){#ifndef CFG_HUSH_PARSER static char lastcomma...
2019-04-11 16:25:23
306
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 u-boot第二阶段start.s分析:start_armboot部分(一)
在第一部分说过u-boot的第一阶段是汇编语言部分,那重头戏就是这第二部分了:start_armboot部分。 首先将编译好的u-boot烧写完成,启动,并打印出环境变量:bootargs=root=/dev/mtdblock2 console=ttySAC0,115200bootcmd=nand read.i c0008000 80000 500000;bootm c000...
2019-04-10 16:10:14
374
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 u-boot第一阶段start.s分析:lowlevel_init部分
u-boot一般分为两个阶段: 第一阶段:硬件相关初始化、初始化内存芯片为bootloader做好准备、复制bootloader到RAM空间中、设置好栈方便调用C语言、跳转到C代码入口。这个部分是汇编语言部分,只是为调用C语言做好准备。 第二阶段:初始化该阶段需要使用到的硬件设备、检测内存映射(MMU)、u-boot命令格式、为内核设置启动参数。这个部分就是C语言部分了。以下是...
2019-04-10 15:54:22
561
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 u-boot的配置过程详解:make xxx_config命令过程
一般而言编译u-boot都需要配置u-boot,比如make xxx_config,那这个过程发生了什么?打开u-boot顶层目录的Makefile,有如下的语句:tiny6410_config : unconfig @$(MKCONFIG) mini6410 arm s3c64xx mini6410 samsung s3c6410 NAND ram256第二句转换一下就是:...
2019-04-10 13:56:08
2590
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 u-boot的Makefile详细分析
以u-boot1.1.6为例,详细剖析u-boot的顶层Makefile:VERSION = 1 #主版本号PATCHLEVEL = 1 #次版本号SUBLEVEL = 6 #再次版本号EXTRAVERSION = #另外的附加的版本信息U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) #...
2019-04-10 13:39:37
497
原创 typedef与define
最近做Linux项目的时候发现自己对typedef认识并不是很深刻,故总结一下,并与看似与define类似做一个比较。 typedef大致会分为以下四个功能: 一、定义一种类型的别名,所以不仅仅只是简单的宏替换。可以用作同时声明指针型的多个对象。如:如果想定义两个字符变量指针:一种方法是这样定义:char *ca, *cb;还有一种方法是使用typedef去定义:...
2019-05-09 15:57:26
198
转载 消费类电子行业公司
手机供应链1、手机主控芯片厂家:高通,MTK,展讯,华为海思,苹果,三星,Intel,Marvell等等2、OEM/ODM方案公司:A:阿龙B:波导(MTK),比亚迪,邦华,邦旭,贝龙,博瑞世纪,倍易通(MTK),宝捷讯(MTK)C:创翔D:东方拓宇(高通),鼎智(MTK),鼎维尔(MTK),鼎为(MTK),鼎勤,德晨,德戎,德晟,多美达F:沸石G:国速科技,国...
2019-05-08 14:39:43
14755
原创 $(origin variable)详解
先说一下origin语法:origin函数不像其它函数。他并不直接操作变量的值,只是告诉你这个变量是从哪里来的?其语法是:$(origin variable)注意这里是变量的名字,不是引用,所以不要使用“$”字符。origin函数会以返回值告诉你这个变量的“出生情况”(这个变量从哪里来的?),下面来看一下origin函数的返回值好了。我们先新建一个Makefile文件,内容是:...
2019-04-10 14:03:25
2560
原创 git的初步认识
今天刚入门git,就被它强大的分布式版本控制系统所吸引,故在此写下初步认识,方便以后查阅。 本章介绍开始使用 Git 前的相关知识。我们会先了解一些版本控制工具的历史背景,然后试着让 Git 在你的系统上跑起来,直到最后配置好,可以正常开始开发工作。读完本章,你就会明白为什么 Git 会如此流行,为什么你应该立即开始使用它。1.1 什么是版本控制? 版本控制是一种记录一个或若干...
2018-03-31 11:49:37
286
原创 PCB板深度思考
这几天在实习,学习了开源却十分强大的开源PCB绘制工具:KICAD。这个软件和我以前接触过的ORCAD还是有很多不一样的。其一,KICAD没有那些华而不实的功能,再者,KICAD开源。 因为自己以前是做单片机软件的,这次有幸接触到绘制PCB,讲讲我的心得体会吧。 首先,一块很普通的PCB板并不仅仅像看上去那么简单,如图它分为以下几个层: 阻焊层其实还可以叫开窗层、绿油层,...
2018-03-30 10:35:00
808
原创 关于面试常见的问题
面试过程中,面试官会向应聘者发问,而应聘者的回答将成为面试官考虑是否接受他的重要依据。对应聘者而言,了解这些问题背后的“猫腻”至关重要。本文对面试中经常出现的一些典型问题进行了整理,并给出相应的回答思路和参考答案。读者无需过分关注分析的细节,关键是要从这些分析中“悟”出面试的规律及回答问题的思维方式,达到“活学活用”。 问题一:“请你自我介绍一下” 思路: 1、这是面试的...
2018-03-03 18:50:12
208
原创 算法和数据操作:回溯法
递归和循环(略)查找和排序(已写)回溯法:适合用递归实现代码。题目:矩阵中的路径、机器人的运动范围1.请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如[a b c e s f c s a d e e]是3*4矩阵...
2018-03-03 17:50:54
398
原创 算法和数据操作
面试常用的排序和查找方法:二分查找、归并排序、快速排序等。目录:1排序算法 1.1冒泡排序 1.2选择排序 1.3 插入排序 1.4快速排序 1.5归并排序2查找算法(二分查找)1 排序算法1.1 冒泡排序冒泡排序算法是最简单的排序算法,它的执行效率最低,但冒泡排序算法既适用于顺序物理结构也适用于链式物理结构。void bubble_sort(int data[],size_t size){ ...
2018-03-03 17:04:21
200
原创 数据结构:栈和队列
五.栈与队列栈定义:用来存储函数调用时各个函数的参数,返回地址及临时变量等。特点:先进后出,不考虑排序。队列特点:先进先出。题目:用两个栈实现一个队列,队列申明如下,实现它的两个函数appendTail和deleteHead,即:队列的尾部插入节点,头部删除节点。思路:自定义一个函数模板CQueue,它有public属性或方法:构造函数,析构函数,在尾部添加节点void appendTail(co...
2018-03-03 16:39:01
324
原创 数据结构:树
树(二叉树(创建,打印,删除))定义:除了根节点之外,每个结点都有一个父节点,除了叶子节点外所有的节点都有一个或者多个子节点。二叉树:每个节点最多有两个叶子节点遍历:按照某个顺序访问树中的所有节点。 三种常见的遍历:前序遍历,中序遍历,后续遍历(可以用递归和循环两种方式实现)可实现的题目:二叉树的深度,树的子结构,二叉树的后续遍历。从上到下遍历二叉树(宽度优先遍历)。二查搜索树:左子结点总是小于等...
2018-03-01 22:14:24
250
原创 数据结构:链表
链表(创建,尾部添加,删除,打印(从头到尾),打印(从尾到头(stack),打印从尾到头(递归(会导致栈溢出))面试中最频繁的数据结构。定义:由指针把若干个节点链接成链状的结构。特点:A.链表存储的数据在地址空间上可连续,可不连续。B.链表中的每一个节点都包括数据和指向下一个地址的指针。C.查找数据的时间复杂度为O(n),方便数据的增删。一、单向链表的C语言实现链表作为一种基本的数据结构在程序开发...
2018-03-01 14:00:26
188
原创 数据结构:字符串
二.字符串定义:若干字符组成的序列c++/c与Java中字符串的对比:c/c++中每个字符串都是以‘\0‘作为结尾;Java中却不是这样的,Java中的一切都是对象,对象有长度,编译器可以确定输出的字符个数。题目:请实现一个函数,把字符串中的每一个空格替换成‘%20‘,例如,输入为"we are happy",则输出为:"we%20are%20happy"思路:要弄清楚两点:第一,在原串上面干,字...
2018-03-01 13:29:06
414
原创 数据结构:数组
一、一维数组(最简单的数据结构)定义:占据一块连续内存并按照顺序存储数据。创建时先指定大小,分配内存。优点:时间效率高。实现简单的hash(下标为key,对应的数据为value)缺点:空间效率差。如果我们只在数组中存一个数字,也先分配所有的内存。扩展:动态数组(解决空间效率差),手段:扩容后,复制内容到新的数组,释放之前的内存。时间性能变差,因此,要尽量减少改变数组容量的次数。数组与指针:声明一个...
2018-03-01 12:52:39
725
原创 c++与类型转换相关的关键字(面试必备)
C++的四种强制类型转换,所以C++不是类型安全的。关键字分别为:static_cast , dynamic_cast , const_cast , reinterpret_cast为什么使用C风格的强制转换可以把想要的任何东西转换成合乎心意的类型。那为什么还需要一个新的C++类型的强制转换呢?新类型的强制转换可以提供更好的控制强制转换过程,允许控制各种不同种类的强制转换。C++中风格是stati...
2018-03-01 10:32:32
288
原创 ARM嵌入式开发总结
读大学时学过计算机组成原理、操作系统、计算机网络等等课程,但是大学生都知道,上完那些课只是懂一点皮毛而已,打打酱油就过去了。特别是对于软件工程师,一定要多实践、多思考才行。理论知识显得并没有搞硬件或者偏硬件开发的那么重要,因为软件的重点在于逻辑和算法。个人认为,在中、高级阶段,偏硬莫非就是一种知识活儿,而偏软莫非就是一种体力活儿……只有到达专家阶段才能够有所突破。对比一下培训机构的软件开发
2017-08-07 12:35:59
1686
原创 stm32f10x中必须知道的冷门知识
1.如果必须用到JTAG的引脚怎么办?如:LED连接到了PA13(SWDAT)、PA14(SWDAT)、PA15(JTDI)、PB03(JTDO)、PB04(JTRST),这些LED在无线循环中翻转。即如何将STM32的JTAG下载引脚:JTDO、JTDI、JTCK 当成普通IO口进行操作?答:若SWJ-DP被禁用,将和主机的调试器连接将断开。只要JTAG IO仍然禁用,就不能重新建立连接,为
2017-08-06 15:59:26
2037
原创 一:51单片机简单IO实验(自测)
1.闪烁灯1. 实验任务如图所示:在 P1.0端口上接一个发光二极管L1,使 L1在不停地一亮一灭,一亮一灭的时间间隔为 0.2秒。2. 电路原理3.程序框图:4.C语言源程序#include sbit L1=P1^0;void delay02s(void) //延时0.2秒子程序{unsigned char i,j,k;for(i=20
2017-08-06 15:04:37
2403
2
原创 51单片机:io口
今天进入正式章节:单片机的io口。首先要弄懂io的两大功能,第一:普通io,第二:第二功能,如:串口、AD转换、外部中断口。当使用引脚的第二功能时不能使用为普通io口。那么io有哪几类呢?这里说的是51单片机总的io分为哪几类。单片机总的io会分为这几类:电平可变化的io口和VCC、GND两类。其中电平可变化的io有P0口、P1口、P2口、P3口、P4口、P5口。那么所谓P0.0又是什么呢?这
2017-08-06 13:49:28
12380
3
原创 C51单片机入门知识
接触单片机也快两年了,虽然期间偶然玩一玩,但是还是没有形成一个完整的单片机系统。借着这次同学想学习的机会,再次回到头来系统的学一遍。其实真正入手单片机挺容易的,稍微会那么一点C语言知识,会定义引脚,会置成高低电平就算入门了吧,个人观点,非喜勿喷。 把单片机总的来分为几大块,剩下的就是算法或者说是C语言搭边的事了:引脚(io)、中断(interrupt)、定时器/计数器(T0、T1)、串行口(us
2017-08-04 14:03:07
4163
原创 位运算符的用法及C语言运算符优先级解析
位运算:&、|、^、~ 其他运算符:>、>>、!常用的位运算符有&(按位与)、|(按位或)、^(按位异或)、~(按位取反),另外还有在单片机常用的开发运算符有&&(并且)、||(或者)、~(取反)、!(非)、、>>、、>>>、位运算把所需要运算的信息看作是二进制组成的信息,按位执行相应的功能后得到相应的结果。常用位运算符有&(按位与)、|(按位或)、^(
2017-05-16 19:33:58
8456
u-boot分析第一阶段和第二阶段流程图:lowlevel_init和start_armboot
2019-04-11
u-boot分析第一阶段流程图:lowlevel_init
2019-04-10
适配于Tiny6410的根文件系统的.jffs2文件
2018-12-22
适配于Tiny6410的Linux_kernel文件
2018-12-22
mkyaffs2-128M工具和busybox 1.17.2
2018-12-22
Tiny6410根文件源文件
2018-12-22
Tiny6410根文件系统yaffs2根文件系统
2018-12-22
Tiny6410最小系统
2018-12-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人