自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zi_yang的博客

思考仔细,行动迅速!

  • 博客(26)
  • 资源 (12)
  • 收藏
  • 关注

原创 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 288

原创 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 358

原创 u-boot第一阶段start.s分析:lowlevel_init部分

u-boot一般分为两个阶段: 第一阶段:硬件相关初始化、初始化内存芯片为bootloader做好准备、复制bootloader到RAM空间中、设置好栈方便调用C语言、跳转到C代码入口。这个部分是汇编语言部分,只是为调用C语言做好准备。 第二阶段:初始化该阶段需要使用到的硬件设备、检测内存映射(MMU)、u-boot命令格式、为内核设置启动参数。这个部分就是C语言部分了。以下是...

2019-04-10 15:54:22 526

原创 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 2585

原创 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 479

原创 typedef与define

最近做Linux项目的时候发现自己对typedef认识并不是很深刻,故总结一下,并与看似与define类似做一个比较。 typedef大致会分为以下四个功能: 一、定义一种类型的别名,所以不仅仅只是简单的宏替换。可以用作同时声明指针型的多个对象。如:如果想定义两个字符变量指针:一种方法是这样定义:char *ca, *cb;还有一种方法是使用typedef去定义:...

2019-05-09 15:57:26 178

转载 消费类电子行业公司

手机供应链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 14538

原创 $(origin variable)详解

先说一下origin语法:origin函数不像其它函数。他并不直接操作变量的值,只是告诉你这个变量是从哪里来的?其语法是:$(origin variable)注意这里是变量的名字,不是引用,所以不要使用“$”字符。origin函数会以返回值告诉你这个变量的“出生情况”(这个变量从哪里来的?),下面来看一下origin函数的返回值好了。我们先新建一个Makefile文件,内容是:...

2019-04-10 14:03:25 2498

原创 git的初步认识

    今天刚入门git,就被它强大的分布式版本控制系统所吸引,故在此写下初步认识,方便以后查阅。    本章介绍开始使用 Git 前的相关知识。我们会先了解一些版本控制工具的历史背景,然后试着让 Git 在你的系统上跑起来,直到最后配置好,可以正常开始开发工作。读完本章,你就会明白为什么 Git 会如此流行,为什么你应该立即开始使用它。1.1 什么是版本控制?    版本控制是一种记录一个或若干...

2018-03-31 11:49:37 259

原创 PCB板深度思考

    这几天在实习,学习了开源却十分强大的开源PCB绘制工具:KICAD。这个软件和我以前接触过的ORCAD还是有很多不一样的。其一,KICAD没有那些华而不实的功能,再者,KICAD开源。    因为自己以前是做单片机软件的,这次有幸接触到绘制PCB,讲讲我的心得体会吧。    首先,一块很普通的PCB板并不仅仅像看上去那么简单,如图它分为以下几个层:    阻焊层其实还可以叫开窗层、绿油层,...

2018-03-30 10:35:00 785

原创 关于面试常见的问题

    面试过程中,面试官会向应聘者发问,而应聘者的回答将成为面试官考虑是否接受他的重要依据。对应聘者而言,了解这些问题背后的“猫腻”至关重要。本文对面试中经常出现的一些典型问题进行了整理,并给出相应的回答思路和参考答案。读者无需过分关注分析的细节,关键是要从这些分析中“悟”出面试的规律及回答问题的思维方式,达到“活学活用”。 问题一:“请你自我介绍一下”        思路:   1、这是面试的...

2018-03-03 18:50:12 199

原创 算法和数据操作:回溯法

递归和循环(略)查找和排序(已写)回溯法:适合用递归实现代码。题目:矩阵中的路径、机器人的运动范围1.请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如[a b c e s f c s a d e e]是3*4矩阵...

2018-03-03 17:50:54 386

原创 算法和数据操作

面试常用的排序和查找方法:二分查找、归并排序、快速排序等。目录: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 190

原创 数据结构:栈和队列

五.栈与队列栈定义:用来存储函数调用时各个函数的参数,返回地址及临时变量等。特点:先进后出,不考虑排序。队列特点:先进先出。题目:用两个栈实现一个队列,队列申明如下,实现它的两个函数appendTail和deleteHead,即:队列的尾部插入节点,头部删除节点。思路:自定义一个函数模板CQueue,它有public属性或方法:构造函数,析构函数,在尾部添加节点void appendTail(co...

2018-03-03 16:39:01 312

原创 数据结构:树

树(二叉树(创建,打印,删除))定义:除了根节点之外,每个结点都有一个父节点,除了叶子节点外所有的节点都有一个或者多个子节点。二叉树:每个节点最多有两个叶子节点遍历:按照某个顺序访问树中的所有节点。 三种常见的遍历:前序遍历,中序遍历,后续遍历(可以用递归和循环两种方式实现)可实现的题目:二叉树的深度,树的子结构,二叉树的后续遍历。从上到下遍历二叉树(宽度优先遍历)。二查搜索树:左子结点总是小于等...

2018-03-01 22:14:24 238

原创 数据结构:链表

链表(创建,尾部添加,删除,打印(从头到尾),打印(从尾到头(stack),打印从尾到头(递归(会导致栈溢出))面试中最频繁的数据结构。定义:由指针把若干个节点链接成链状的结构。特点:A.链表存储的数据在地址空间上可连续,可不连续。B.链表中的每一个节点都包括数据和指向下一个地址的指针。C.查找数据的时间复杂度为O(n),方便数据的增删。一、单向链表的C语言实现链表作为一种基本的数据结构在程序开发...

2018-03-01 14:00:26 174

原创 数据结构:字符串

二.字符串定义:若干字符组成的序列c++/c与Java中字符串的对比:c/c++中每个字符串都是以‘\0‘作为结尾;Java中却不是这样的,Java中的一切都是对象,对象有长度,编译器可以确定输出的字符个数。题目:请实现一个函数,把字符串中的每一个空格替换成‘%20‘,例如,输入为"we are happy",则输出为:"we%20are%20happy"思路:要弄清楚两点:第一,在原串上面干,字...

2018-03-01 13:29:06 391

原创 数据结构:数组

一、一维数组(最简单的数据结构)定义:占据一块连续内存并按照顺序存储数据。创建时先指定大小,分配内存。优点:时间效率高。实现简单的hash(下标为key,对应的数据为value)缺点:空间效率差。如果我们只在数组中存一个数字,也先分配所有的内存。扩展:动态数组(解决空间效率差),手段:扩容后,复制内容到新的数组,释放之前的内存。时间性能变差,因此,要尽量减少改变数组容量的次数。数组与指针:声明一个...

2018-03-01 12:52:39 706

原创 c++与类型转换相关的关键字(面试必备)

C++的四种强制类型转换,所以C++不是类型安全的。关键字分别为:static_cast , dynamic_cast , const_cast , reinterpret_cast为什么使用C风格的强制转换可以把想要的任何东西转换成合乎心意的类型。那为什么还需要一个新的C++类型的强制转换呢?新类型的强制转换可以提供更好的控制强制转换过程,允许控制各种不同种类的强制转换。C++中风格是stati...

2018-03-01 10:32:32 275

原创 ARM嵌入式开发总结

读大学时学过计算机组成原理、操作系统、计算机网络等等课程,但是大学生都知道,上完那些课只是懂一点皮毛而已,打打酱油就过去了。特别是对于软件工程师,一定要多实践、多思考才行。理论知识显得并没有搞硬件或者偏硬件开发的那么重要,因为软件的重点在于逻辑和算法。个人认为,在中、高级阶段,偏硬莫非就是一种知识活儿,而偏软莫非就是一种体力活儿……只有到达专家阶段才能够有所突破。对比一下培训机构的软件开发

2017-08-07 12:35:59 1669

原创 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 2018

原创 一: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 2360 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 12239 3

原创 C语言关键字:break、continue、return、exit

C语言中的关键字:break,continue,return,exit

2017-08-04 14:26:06 4240

原创 C51单片机入门知识

接触单片机也快两年了,虽然期间偶然玩一玩,但是还是没有形成一个完整的单片机系统。借着这次同学想学习的机会,再次回到头来系统的学一遍。其实真正入手单片机挺容易的,稍微会那么一点C语言知识,会定义引脚,会置成高低电平就算入门了吧,个人观点,非喜勿喷。 把单片机总的来分为几大块,剩下的就是算法或者说是C语言搭边的事了:引脚(io)、中断(interrupt)、定时器/计数器(T0、T1)、串行口(us

2017-08-04 14:03:07 4126

原创 位运算符的用法及C语言运算符优先级解析

位运算:&、|、^、~         其他运算符:>、>>、!常用的位运算符有&(按位与)、|(按位或)、^(按位异或)、~(按位取反),另外还有在单片机常用的开发运算符有&&(并且)、||(或者)、~(取反)、!(非)、、>>、、>>>、位运算把所需要运算的信息看作是二进制组成的信息,按位执行相应的功能后得到相应的结果。常用位运算符有&(按位与)、|(按位或)、^(

2017-05-16 19:33:58 8187

u-boot分析第一阶段和第二阶段流程图:lowlevel_init和start_armboot

该文件是u-boot分析第一阶段和第二阶段流程图:lowlevel_init和start_armboot,具体分析的文章如下: lowlevel_init:https://blog.csdn.net/zi_yang_/article/details/89182278 start_armboot:https://blog.csdn.net/zi_yang_/article/details/89185760 main_loop:https://blog.csdn.net/zi_yang_/article/details/89209584 本文件与文章结合查看更香哦~该文件需要使用xmind打开

2019-04-11

u-boot分析第一阶段流程图:lowlevel_init

这个文件是关于u-boot启动第一阶段的流程图,都是汇编代码,故整理出了一份流程图,需要使用xmind打开。若有错误请联系我修改 本文件与文件搭配更香哦~ u-boot第一阶段start.s分析:lowlevel_init部分:https://blog.csdn.net/zi_yang_/article/details/89182278

2019-04-10

适配于Tiny6410的根文件系统的.jffs2文件

适配于Tiny6410的根文件系统的.jffs2文件,已测试,和yaffs2文件系统差不多,只不过jffs2是压缩的文件系统,比yaffs2文件系统差不多小一半。

2018-12-22

制造Tiny6410系统之必备工具

u-boot源文件,linux内核源文件配置文件,busybox源文件,mkyaffs2-128M工具,具体编译配置好的文件在我的资源里面。

2018-12-22

适配于Tiny6410的Linux_kernel文件

包含uImage和zImage两个内核镜像。该内核是Linux 2.6.38,已经全部配置好了,支持nfs挂载,在Tiny6410上已经测试过。

2018-12-22

适配于Tiny6410的u-boot文件

在Tiny6410上亲测可用,该u-boot为u-boot1.1.6,比较贴近s3c6410的版本~

2018-12-22

mkyaffs2-128M工具和busybox 1.17.2

Tiny6410可用!在制造yaffs2文件系统的时候发现无论如何Linux系统都不能正常启动,发现是工具不对。现在系统能正常启动了就把工具上传,还有比较新的busybox。

2018-12-22

Tiny6410根文件源文件

Tiny6410亲测可用!这是地址https://download.csdn.net/download/zi_yang_/10869425在Linux系统中直接打包出来的源文件系统,mini_rootfs.tar压缩包是利用mkyaffs2制造出mini_rootfs.yaffs2之前的根文件系统,不是很完整的根文件系统,auto_mount_rootfs.tar是添加了自动挂载功能的源系统,是利用mkyaffs2制造出fix_udev_rootfs.yaffs2之前的源根文件系统。两个系统均可使用NFS挂载!

2018-12-22

Tiny6410根文件系统yaffs2根文件系统

Tiny6410亲测可用!压缩包包含三个适用于Tiny6410的yaffs2根文件系统,mini_rootfs.yaffs2是最小的根文件系统,不是很完整的根文件系统,fix_mount_mini_rootfs.yaffs2添加了自动挂载功能,fix_udev_rootfs.yaffs2在添加了自动挂载功能的前提下实现了自动创建设备节点。

2018-12-22

arm交叉编译工具:arm-linux-gcc 4.5.1

交叉工具链arm-linux-gcc 4.5.1,以及制造根文件系统时需要的动态链接库也在该工具的目录下。

2018-12-22

Tiny6410最小系统

Tiny6410最小mini系统(包括u-boot、uImage,zImage内核镜像、文件系统),其中文件系统为最小的mini系统,如果又需要将上传制造u-boot、uImage、zImage内核镜像、文件系统的全部工具。

2018-12-20

适配于Tiny-6410的u-boot

在tiny-6410上亲测可用,下载菜单等一应俱全,欢迎下载

2018-12-07

空空如也

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

TA关注的人

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