自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

转载 《构建根文件系统(三)init进程最后while部分与reboot的联系》

1.转载于:https://www.cnblogs.com/zhuangquan/p/11561982.html

2019-09-21 11:06:00 80

转载 《待学习的》

1.在结构体中定义链表,然后利用改链表对结构体进行遍历。转载于:https://www.cnblogs.com/zhuangquan/p/11561531.html

2019-09-21 10:04:00 106

转载 《构建根文件系统(二)分析busybox源码》

1.busybox  平时我们在开发板中输入ls、cp、mv等命令,都是在/bin文件中。而通过ls -l就可以发现    这些命令都是放在busybox中的。并且在内核启动后,通过ps命令,可以看到有一个init进程正在运行。    因此就先来分析一下,这个第一个运行的进程init。2.init进程分析init_main函数:int ini...

2019-09-20 16:02:00 267

转载 《构建根文件系统(一)init_post内核启动第一个应用程序》

1.init_post启动应用程序  在内核经过一系列得初始化以及挂载了根文件系统后,最后就是运行第一个应用程序。 if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0) printk(KERN_WARNING "Warning: unable to open an i...

2019-09-20 15:34:00 202

转载 《tiny4412启动》

参考:https://blog.csdn.net/qq_23922117/article/details/783129081.编译uboota) 安装好toolchain (arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz)并设置好 环境变量PATH,保证可以正常使用。 sudo tar -xvf arm-linux-gcc-4.5.1-...

2019-09-19 09:50:00 256

转载 《kernel源码分析(二)内核启动流程分析》

1.内核启动参数  当uboot启动内核时,调用的是armlinux.c中的theKernel (0, bd->bi_arch_number, bd->bi_boot_params),传入了两个参数。  bi_arch_number:机器码(以2410为例,可以通过sourceinsight中的全局搜索。在smdk2410.c中:gd->bd->bi_ar...

2019-09-09 10:12:00 142

转载 《kernel源码分析(一)配置和编译过程》

1.内核的配置和编译cp arch/arm/configs/xx_defconfig .configmake menuconfigmake uImage2.了解内核的配置过程和编译过程  在内核的配置过程中,会生成文件.config。  以网卡DM9000为例:  在.config中可以找到”CONFIG_DM9000=y“,这表示这个模块会...

2019-09-04 19:52:00 245

转载 《uboot源码解析(四)引导内核启动》

1.内核启动bootcmd  内核启动的两个条件: 1.从Flash中读出内核 2.bootm命令  在uboot界面,通过prinenv可以看到bootcmd=nand read.jffs2 0x30007FC0 kernel;bootm 0x30007FC0  nand read.jffs2 0x30007FC0 kernel就是将内核从Flash读到内存  boot...

2019-08-30 15:48:00 234

转载 《u-boot.lds分析》

u-boot.lds (~/board/smdk2410/u-boot.lds)/*指定输出可执行文件是elf格式,32位ARM指令,小端*/OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")/*OUTPUT_FORMAT("elf32-arm", "elf32-arm", "e...

2019-08-29 18:08:00 123

转载 《uboot源码解析(三)命令行解析》

1.命令行解析以help命令为例(~/comand/command.c)U_BOOT_CMD( help, CFG_MAXARGS, 1, do_help, "help - print online help\n", "[command ...]\n" " - show help informatio...

2019-08-27 20:28:00 230

转载 《uboot源码解析(二)启动第二阶段分析》

1.start_armboot分析根据上一文章得知,在uboot第一阶段最后会调用start_armboot。接下来就继续分析一下start_armboot这个函数(~/lib_arm/board.c)void start_armboot (void){ init_fnc_t **init_fnc_ptr; char *s;#ifndef CFG_...

2019-08-27 14:54:00 141

转载 《uboot源码解析(一)启动第一阶段——start.s分析》

原文链接:https://blog.csdn.net/itdo_just/article/details/78701886以下源码以u-boot-1.1.6中的2410为例。1.start.s的引入在board/smdk2240/u-boot.lds中可以看到ENTRY(_start),。Uboot整个程序的入口取决于链接脚本中ENTRY声明的地方。ENTRY(_sta...

2019-08-26 16:13:00 76

转载 《uboot的目录结构说明》

1、版本号变化:2008年8月及以前,按版本号命名:u-boot-1.3.4.tar.bz2(2008年8月更新)2008年8月以后均按日期命名。目前最新版本:u-boot-2011.06.tar.bz2(2011年6月更新)2、目录结构变化:u-boot目录结构主要经历过2次变化,u-boot版本第一次从u-boot-1.3.2开始发生变化,主要增加了api的内容;变化...

2019-08-26 14:54:00 163

转载 《uboot环境变量:详谈bootcmd 和bootargs》

1.uboot中的环境变量bootdelay:执行自动启动的等候秒数baudrate:串口控制台的波特率netmask: 以太网接口的掩码ethaddr: 以太网卡的网卡物理地址bootfile: 缺省的下载文件bootargs:传递给内核的启动参数bootcmd:自动启动时执行的命令serverip: 服务器端的ip地址ipaddr: ...

2019-08-22 11:06:00 334

转载 《uboot与linux内核间的参数传递过程分析》

1.内核中对boot loader描述(源码位于kernel中的Documentation/arm/booting)4. Setup boot data------------------Existing boot loaders: OPTIONAL, HIGHLY RECOMMENDEDNew boot loaders: MA...

2019-08-05 16:09:00 524

转载 《驱动学习 - 字符设备驱动》

1.1字符设备驱动基础字符设备驱动:设备对数据的处理是按照字节流的形式进行的。在linux中,“一切皆文件”(除了网络设备),这表示设备最终都会体现为一个文件。设备文件通常位于/dev目录下、内核通常用主设备号区别一类设备,次设备号用于区分同一类设备的不同个人或不同分区。手动创建设备文件mknod /dev/vser0 c 256 0mkn...

2019-07-22 08:53:00 86

转载 《驱动学习 - 第一个内核模块》

#include <linux/init.h> //包含init_module和cleanup_module的两个函数原型声明#include <linux/kernel.h> //包含了printk函数的原型声明#include <linux/module.h> /* 模块初始化函数...

2019-07-19 15:47:00 111

转载 《套接字》

1.创建套接字socket函数#include <sys/types.h>#include <sys/socket.h>int socket(int domain, int type, int protocol);第一个参数domain:指定协议族AF_UNIX: 文件系统套接字(通过UNIX和linux文件系统实现的本地套接字)...

2019-05-23 11:16:00 95

转载 《进程间通信》

1.管道管道:就是把一个程序的输出直接连接到另一个程序的输入。(具有血缘关系的进程之间)#include <unistd.h>int pipe(int fd[2])参数:fd[2]:管道的两个文件描述符,fd[0]固定用于读管道,fd[1]固定用于写管道。返回值:成功:0 失败:-1如何使用管道:用pipe函数直...

2019-05-21 16:40:00 93

转载 《进程》

1.进程终止从main返回;调用exit;调用_exit或_Exit;最后一个线程从其启动例程返回;从最后一个线程调用ptherad_exit;以上五种位正常终止。调用abort;接到一个信号;最后一个线程对取消请求作出响应;以上三种为异常终止。其中_exit和_Exit立即进入内核,exit则会先执行一些清理处理,然后返回内核...

2019-05-21 15:44:00 100

转载 《线程的同步》

3.1信号量信号量:是一个特殊类型的变量,这个信号量可以被增加或者减少,当信号量大于0时,代表资源可以被访问。当访问完后,信号量减1。当信号量为0时,要想访问信号量就要等待(阻塞)。根据信号量的值可以分为:二进制信号量和计数信号量信号量的创建/销毁:#include <semaphore.h>int sem_init(sem_t *sem,...

2019-05-21 11:41:00 75

转载 《线程的概念》

1.线程的定义1.1 线程:线程是进程中的一个独立的代码块。说白了,其实它就是个函数,只不过再也不用像以前的函数调用来调用它。而是通过pthread_create函数来创建它,也就是告诉内核,这个函数是个线程,今后交给你来调度了。  如果从以上的定义来看,那么很明显,线程是拥有自己的栈空间(局部变量),但是共享全局变量、文件描述符等。  注意:这边区别一下和fork系统调用创...

2019-05-20 18:43:00 76

转载 memset函数的用法

重点需要注意一个细节:memset是以byte来填充的,也就是一个字节(8bit)一个单位来填充。因此:如果int array[10]; memset(array, 1, 10);然后再把array的值打印出来,会得到一个错误的值。因为int是4个字节,因此再int类型中1的表现形式为“00000000000000000000000000000001”,然后将这32位填充1个by...

2019-05-19 10:24:00 119

转载 《打印调试》

1.在linux编译中提示引用未定义的_FILE_等宏?要使用__FILE__。注意是双下划线,书上很多连在一起会误以为是单下划线。2.使用#ifdef DEBUG在编译的时候要加上-DDEBUG选项#include <stdio.h>#ifdef DEBUG#define DBG_PRT(format) \printf...

2019-05-16 19:09:00 194

转载 标准I/O库

1.关于printf的缓冲问题缓冲分为:行缓冲 全缓冲 不缓冲(具体什么含义,自己百度)这里当全缓冲的时候,只有当缓冲区满或者程序结束之后,才会将数据输出出来。那么也就是说,当程序中一个标准I/O是使用全缓冲,并且程序没有退出,那么在缓冲区大小没满的情况下,printf是不会有输出的。后面具体了解一下什么情况是行缓冲,什么情况是全缓冲。转载于:https://www...

2019-04-16 20:26:00 55

转载 strlen和sizeof

1.strlen计算不包含终止null字节的字符串长度,而sizeof则计算包括终止null字节的缓冲区长度。两者之间的另一个差别是,使用strlen需进行一次函数调用,而对于sizeof而言,因为缓冲区已用已知字符串进行初始化,其长度是固定的,所以sizeof是在编译时计算缓冲区长度。转载于:https://www.cnblogs.com/zhuangquan/p/10719...

2019-04-16 19:14:00 107

转载 linux驱动编译时候出现的问题

1.在编译驱动的时候,提示错误,找不到<asm/xxxx.h>这些类的头文件?答:因为在内核编译的时候,会在内核目录的include中创建一个asm文件再软链接到对应的一些架构。比如我当时没配置好内核编译,就链接到x86的架构的头文件。所以导致找不到这些头文件。2.应该如何正确编译内核?1.配置交叉编译工具,修改顶层Makefile。修改ARCH ?= arm...

2019-02-27 14:28:00 485

转载 开发板ping得通本地,但是不能上网

在3531D的开发板上面接入LAN7500的USB转以太网口,加载完驱动后。然后开启eth1查看一下ifconfig,发现没有ip,配置一下ip直接ping本地发现可以ping得通,代表链路是连接的。然后ping www.baidu.com 和百度的ip,发现都ping不上,表示不能连接外网。运行route,可以发现没有网关,因此添加网关r...

2019-01-24 10:20:00 685

转载 阅读英文文档时候,那些经常看到我又记不住得英语单词

attach 连接 附加integrate v结合 继承 整合:recognize v 识别 认出option n 选择mechanism n 机制protocol n 协议manuallyadv.用手;手动地;用手地manual adj.手的;用手的 n.手册;说明书;用手操作的器具various adj.不同的;各种各样的det. ...

2019-01-11 09:41:00 117

转载 Hi3531D搭建环境时,出现的问题

1.展开SDK包得时候,运行./sdk.unpack得时候出现:原因:ubuntu14.04中默认得是dash,要将dash改成bash。解决方法:sudo ln -fs /bin/bash /bin/sh 2.安装完arm-hisiv500-linux-gcc后编译内核,提示/bin/sh: /opt/hisi-linux/x86-arm/arm-hisiv5...

2019-01-08 14:19:00 441

转载 《Linux 进程间通信》命名管道:FIFO

命名管道的主要用途:不相关的进程之间交换数据。命令行上创建命名管道:$ mkfifo filename程序中创建命名管道:#include <sys/types.h>#include <sys/stat.h>int mkfifo(const char *filename, mode_t mode);备注...

2018-12-17 16:52:00 80

转载 <QT之Bug制造机>QT中串口类“QSerialPort”的学习笔记

QT5中已经增加了串口类QSrialPort,可以直接调用API函数进行快速开发。1. 获取串口信息Dialog::Dialog(QWidget *parent) : QDialog(parent){ const auto infos = QSerialPortInfo::availab...

2018-12-13 16:23:00 975

转载 <QT障碍之路>qt中使用串口类接收数据不完整

问题:当用QT中的serial->readAll()的时候,不会把全部的数据一次性都读取出来,而是阶段性的。原因是因为当串口有信号时候,readyRead()信号就会被抛出,那么一帧完整的数据帧就可能被分多次接收进来,会影响一些后续的操作。解决方法:  1.通讯双方提前定义好帧头和帧尾,方便进行校验。当检测到到帧头和帧尾,才认定一帧数据时完整的。  2.在readyRe...

2018-12-13 14:51:00 918

转载 <QT障碍之路>QApplication:No such file or directory

原因:QT5将很多部件都移动了QT widgets模块中。解决方法:在.pro文件中添加greaterThan(QT_MAJOR_VERSION, 4): QT += widgets转载于:https://www.cnblogs.com/zhuangquan/p/10026903.html...

2018-11-27 16:01:00 159

空空如也

空空如也

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

TA关注的人

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