- 博客(30)
- 收藏
- 关注
原创 Sourceinsight的使用
1、为什么要使用SourceInsight对于一个真正的一个项目,往往有几十几百甚至上万个c文件、h文件,代码量非常大,代码之间关联非常复杂,就带来一个问题,代码的分析、阅读越来越难。譬如这里引用了一个函数但是这个函数可能在另外一个目录下的一个文件夹中存放,这样情况下代码查找和阅读很困难,我们希望有一个好工具能够帮助。于是乎有了SourceInsight。2、建立工程及添加文件要使用SI看代码,首先要创建一个工程。菜单栏:Project->new project。在弹出的对话框中上面输入工
2020-08-11 23:50:59
358
原创 Makefile
1、Makefile的作用和意义工程项目中c文件太多管理不方便,因此用Makefile来做项目管理,方便编译链接过程。uboot和linux kernel本质上都是C语言的项目,都由很多个文件组成,因此都需要通过Makefile来管理。所以要分析uboot必须对Makefile有所了解。2、目标、依赖、命令目标就是我们要去make xxx的那个xxx,就是我们最终要生成的东西。依赖是用来生成目录的原材料命令就是加工方法,所以make xxx的过程其实就是使用命令将依赖加工成目标的过程。
2020-08-05 23:53:44
284
原创 嵌入式学习笔记-uboot和系统移植-2.20buildroot的引入和介绍
一、X210的bsp介绍1、嵌入式linux产品的bsp介绍大部分的ARM架构的linux平台的bsp的内容和结构都是相似的。bsp一般是芯片厂家/板卡厂家提供的。2、X210的linux+QT bsp整体介绍tslib_x210_qtopia.tgz是用来支持QT的触摸屏操作的应用层库xboot和uboot是X210支持的2个bootloader源代码。kernel文件夹中是内核源代码,buildroot文件夹是用来构建根文件系统的文件夹。tools里是一些有用工具。mk脚本是用来管理
2020-08-05 22:51:03
382
原创 嵌入式学习笔记-uboot和系统移植-2.19根文件系统构建实验及过程详解
一、根文件系统的构建路线1、课程安排变化。2、先逐步构建文件夹形式根文件系统然后制作烧录镜像rootfs有2种格式:nfs方式启动的文件夹形式的rootfs和用来烧录的镜像形式的rootfs。传统的培训机构中上课时,rootfs制作实验都是直接给制作文档,学生参照制作文档的步骤自己动手做,一步到位做出来的就是可供烧录的rootfs。我们先从空文件夹开始,逐步向其中添加一些rootfs中必备的东西,然后做一步就用nfs方式去挂载启动,观察启动后的现象,并且理论上去分析原因。3、动手实践和理论分
2020-08-02 23:46:01
428
原创 嵌入式学习笔记-uboot和系统移植-2.18根文件系统的原理
一、根文件系统概述1、为什么需要根文件系统init进程的应用程序在根文件系统上根文件系统提供了根目录/内核启动后的应用层配置(etc目录)在根文件系统上。几乎可以认为:发行版=内核+rootfsshell命令程序在根文件系统上。譬如ls、cd等命令总结:一套linux体系,只有内核本身是不能工作的,必须要rootfs(上的etc目录下的配置文件、/bin /sbin等目录下的shell命令,还有/lib目录下的库文件等···)相配合才能工作。2、根文件系统的实质是什么根文件系统是特殊
2020-08-02 09:16:09
245
原创 虚拟机上网问题
方式1:NAT方式第一步:在菜单栏 虚拟机 -> 设置 -> 硬件 -> 网络适配器,右侧选择NAT模式第二步: vi /etc/network/interfaces,打开该文件,将内容编辑成为:auto loiface lo inet loopbackauto eth0iface eth0 inet dhcpaddress 192.168.1.141netmask 255.255.255.0gateway 192.168.1.1第三步:执行/etc/ini
2020-07-06 10:09:10
121
原创 Unable to locate package tree问题解决
apt-get install tree时Unable to locate package tree使用sudo apt-get update再进行apt-get install tree
2020-07-05 13:38:45
4758
3
原创 linux命令行中一些符号的含义
. 代表当前目录.. 代表上一层目录,当前目录的父目录- 代表前一个目录,我刚才从哪个目录cd过来~ 代表当前用户的宿主目录/ 代表根目录$ 普通用户的命令行提示符# root用户的命令行提示符* 万能匹配符宿主目录:所谓宿主目录,就是操作系统为当前用户所设计的用来存放文件、工作的默认目录。如Windows中的“我的文档”目录,就是Windows为我们设计的宿主目录。Linux中每个用户都有自己的宿主目录,这个目录对于普通用户来说,在/home/username/,而对于
2020-07-05 12:25:03
2021
原创 ls -l显示的详细信息
ls -l显示的详细信息中:-rw-r–r--drwxr-xr-x一共10个字符,第一个字符表示文件类型,后面9个字符表示文件权限。文件类型:-表示普通文件。普通文件指文本文件和二进制文件,如a.c 1.txt a.out都是普通文件d 表示文件夹,d是directory的缩写l 表示符号连接文件,后面会用->打印出它指向的文件s 表示socket文件p 表示管道文件 pipe...
2020-07-05 11:23:10
1791
原创 相对路径与绝对路径
D:\winshare\enum.c(全路径=pathname)D:\winshare(路径=path)enum.c(文件名=name)绝对路径:路径是从绝对位置开始的。譬如Windows中从某一个盘符开始(C:\),linux中从根目录/开始相对路径:指明路径的时候,是从当前所在的位置开始的。举例:D:\我的文档\123\123.txtD:\我的文档\abc\abc.txt方式1:采用绝对路径。D:\我的文档\abc\abc.txt方式2:采用相对路径。…/abc/abc.txt.
2020-07-04 17:25:53
260
原创 内核和发行版的关系
内核是操作系统内核的简称,内核负责实现操作系统的核心功能(资源管理模块,譬如内存管理、调度系统······),内核不包括应用程序。所以说只有内核人是没法用的,因为人做任何事情都是通过相应的应用程序来完成的。所以卖操作系统的人把内核和一些常用的应用程序打包在一起提供给普通用户,这就是操作系统的发行版(也就是普通意义上的操作系统)。内核只有一个。www.kernel.org发行版有很多。譬如ubuntu、redhat、suse、centos······...
2020-07-04 17:19:13
409
原创 嵌入式学习笔记-uboot和系统移植-2.11 uboot的移植1
一、内核和发行版的区别1、到底什么是操作系统linux、windows、android、ucos就是操作系统操作系统本质上是一个程序,由很多个源文件构成,需要编译连接成操作系统程序(vmlinz、zImage)操作系统的主要作用就是管理计算机硬件,给应用程序提供一个运行环境。2、操作系统核心功能:内存管理。如果没有操作系统,内存是需要程序自己来管理的。譬如在uboot中要使用内存...
2020-04-13 23:06:20
177
原创 嵌入式学习笔记-uboot和系统移植-2.10 uboot的硬件驱动部分
一、uboot与linux驱动1、uboot本身是裸机程序裸机本来是没有驱动的概念的(狭义的驱动的概念就是操作系统中用来具体操控硬件的那部分代码叫驱动)裸机程序中是直接操控硬件的,操作系统中必须通过驱动来操控硬件。这两个有什么区别?本质区别就是分层。2、uboot的虚拟地址对硬件操作的影响操作系统(指的是linux)下MMU肯定是开启的,也就是说linux驱动中肯定都使用的是虚拟地...
2020-04-13 19:45:38
174
原创 嵌入式学习笔记-uboot和系统移植-2.9 uboot源码分析5-uboot的环境变量
一、uboot的环境变量基础1、环境变量的作用让我们可以不用修改uboot的源代码,而是通过修改环境变量来影响uboot运行时的一些数据和特性。譬如说通过修改bootdelay环境变量就可以更改系统开机自动启动时倒数的秒数。2、环境变量的优先级uboot代码当中有一个值,环境变量中也有一个值。uboot程序实际运行时规则是:如果环境变量为空则使用代码中的值;如果环境变量不为空则优先使...
2020-04-13 17:17:48
178
1
原创 嵌入式学习笔记-uboot和系统移植-2.8 uboot源码分析4-uboot的命令体系
一、uboot和内核到底是什么1、uboot是一个裸机程序uboot的本质就是一个复杂点的裸机程序。和我们在ARM裸机全集中学习的每一个裸机程序并没有本质区别。——资料来源于朱老师物联网大讲堂...
2020-04-13 14:30:57
177
原创 嵌入式学习笔记-uboot和系统移植-2.7 uboot源码分析3-uboot如何启动内核
一、uboot和内核到底是什么1、uboot是一个裸机程序uboot的本质就是一个复杂点的裸机程序。和我们在ARM裸机全集中学习的每一个裸机程序并没有本质区别。ARM裸机第十六部分写了个简单的shell,这东西其实就是个mini型的uboot。2、内核本身也是一个"裸机程序"操作系统内核本身就是一个裸机程序,和uboot、和其他裸机程序并没有本质区别。区别就是操作系统运行起来后在...
2020-04-13 12:09:25
238
原创 linux基础知识
1、隐藏文件与非隐藏文件Windows中:文件隐藏与不隐藏通过设置文件属性实现的,可以点击文件,右键属性,选择勾选隐藏选项来设置文件为隐藏文件。。在Windows中查看隐藏文件方法:菜单栏 工具->文件夹选项->查看->显示所有文件和文件夹。Linux中:linux中隐藏文件特点是文件名以.开头,跟文件属性无关。在linux中查看隐藏文件用ls -a命令(普通显示ls)...
2020-04-10 10:22:23
156
原创 嵌入式学习笔记-linux应用编程和网络编程-3.9 linux网络编程实践
一、linux网络编程框架1、网络是分层的OSI 7层模型网络为什么要分层网络分层的具体表现2、TCP/IP协议引入TCP/IP协议是用的最多的网络协议实现TCP/IP分为4层,对应OSI的7层我们编程时最关注应用层,了解传输层,网际互联层和网络接入层不用管3、BS和CSCS架构介绍(client server,客户端服务器架构)BS架构介绍(broswer ser...
2020-04-09 16:49:45
262
原创 嵌入式学习笔记-linux应用编程和网络编程-3.8 网络基础
一、再论进程1、从进程间通信说起网络域套接字socket,网络通信其实就是位于网络中不同主机上面的2个进程之间的通信。2、网络通信概述硬件部分:网卡操作系统底层:网卡驱动操作系统API:socket接口应用层:低级(直接基于socket接口编程)应用层:高级(基于网络通信应用框架库)应用层:更高级(http、网络控件等)3、网络通信概述重点1:掌握网络通信的架构层次...
2020-04-09 11:02:03
275
原创 嵌入式学习笔记-linux应用编程和网络编程-3.7 linux线程全解
一、再论进程1、多进程实现同时读取键盘和鼠标#include <stdio.h>#include <unistd.h>#include <string.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>int main(void){...
2020-04-08 22:26:20
228
原创 嵌入式学习笔记-linux应用编程和网络编程-3.6 高级IO(相对于第一节的普通文件io)
一、非阻塞IO1、阻塞与非阻塞2、为什么有阻塞式常见的阻塞:wait、pause、sleep等函数;read或write某些文件时阻塞式的好处3、非阻塞为什么要实现非阻塞如何实现非阻塞IO访问:O_NONBLOCK和fcntl二、阻塞式IO的困境1、程序中读取键盘int main(void){ char buf[200]; // 键盘就是标准输入,stdin...
2020-04-07 15:22:46
157
原创 嵌入式学习笔记-linux应用编程和网络编程-3.5 linux中的信号
一、什么是信号1、信号是内容受限的一种异步通信机制信号的目的:用来通信信号是异步的(对比硬件中断)信号本质上是int型数字编号(事先定义好的)2、信号由谁发出用户在终端按下按键硬件异常后由操作系统内核发出信号用户使用kill命令向其他进程发出信号某种软件条件满足后也会发出信号,如alarm闹钟时间到会产生SIGALARM信号,向一个读端已经关闭的管道write时会产生SIG...
2020-04-07 13:46:22
253
原创 嵌入式学习笔记-linux应用编程和网络编程-3.4 linux进程全解
一、程序的开始和结束1、main函数由谁调用编译链接时的引导代码。操作系统下的应用程序其实在main执行前也需要先执行一段引导代码才能去执行main,我们写应用程序时不用考虑引导代码的问题,编译链接时(准确说是连接时)由链接器将编译器中事先准备好的引导代码给链接进去和我们的应用程序一起构成最终的可执行程序。运行时的加载器。加载器是操作系统中的程序,当我们去执行一个程序时(譬如./a.out...
2020-04-07 02:08:31
349
原创 嵌入式学习笔记-linux应用编程和网络编程-3.3 获取系统信息
一、关于时间的概念1、GMT时间GMT是格林尼治时间,也就是格林尼治地区的当地之间。GMT时间的意义?用格林尼治的当地时间作为全球国际时间,用以描述全球性的事件的时间,方便大家记忆。一般为了方便,一个国家都统一使用一个当地时间。2、UTC时间GMT时间是以前使用的,近些年来越来越多的使用UTC时间。关于北京时间,可以参考:http://www.cnblogs.com/qiuyi...
2020-04-04 22:39:20
206
原创 嵌入式学习笔记-linux应用编程和网络编程-3.1 linux中的文件IO
介绍:linux应用编程课程的整体设计框架和设计思路,文件IO的含义等一、什么是应用编程典型的嵌入式产品就是基于嵌入式linux操作系统来工作的。典型的嵌入式产品的研发过程就是;第一步让linux系统在硬件上跑起来(系统移植工作),第二步基于linux系统来开发应用程序实现产品功能。基于linux去做应用编程删除线格式 ,其实就是通过调用linux的系统API来实现应用需要完成的任务。...
2020-04-04 17:28:50
528
原创 嵌入式学习笔记-linux应用编程和网络编程-3.2 文件属性
一、linux中各种文件类型1、普通文件(- regular file)文本文件。文件中的内容是由文本构成的,文本指的是ASCII码字符。文件里的内容本质上都是数字(不管什么文件内容本质上都是数字,因为计算机中本身就只有1和0),而文本文件中的数字本身应该被理解为这个数字对应的ASCII码。常见的.c文件, .h文件 .txt文件等都是文本文件。文本文件的好处就是可以被人轻松读懂和编写。所...
2020-04-04 17:26:32
205
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人