自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2021.5.10学习笔记

一、1、bootloader的工作原理及作用?bootloader 引导装载程序uboot就是一个bootloader,作用就是用于启动Linux或其他系统。Uboot最主要的工作就是初始化DDR。因为Linux是运行在DDR里面的。一般Linux镜像zImage(uImage)+设备树(.dtb)存放在SD、EMMC、NAND、SPI FLASH等等外置存储区域。这里就牵扯到一个问题,需要将Linux镜像从外置flash拷贝到DDR中,再去启动。Uboot的主要目的就是为系统的启动做准备。U

2021-05-12 17:14:29 138 1

原创 2021.4.30学习笔记

Qt的特点:一套应用程序开发类库:丰富的API,支持2D/3D图形渲染Qt的良好封装机制使得Qt的模块化程度非常高,可重用性好最优秀的跨平台框架Qt的许可类型1、商业许可2、开源许可

2021-04-30 17:24:14 86

原创 2021.4.30学习笔记(C++问题汇总)

嵌入式学习笔记一些关于C++的问题C++对C语言的升级:C++独有的特质:C++与java的区别:函数重载的原理:C++:对象移动解决的问题:结构体与类的区别:有几种构造函数:每种构造函数的特点以及解决的问题:初始化列表的作用:什么是引用:引用解决的问题:C++的强制类型转化:C语言与C++ static关键字的区别:重载与重写的区别:类之间的关系:继承规则:继承构造函数的调用顺序:继承的二义性:多态的实现:多态的实现机制(用自己的话概括):多态的形成条件:正则表达式:C语言的异常处理:GC机制:C++为什

2021-04-30 11:42:20 116

原创 2021.4.29学习笔记

嵌入式学习笔记拷贝构造函数:友元函数继承:多态纯虚函数抽象类:C语言的异常处理:C++异常处理拷贝构造函数:形参是该类型的对象引用,若类内无自定义拷贝构造函数系统会默认生成拷贝构造函数;函数返回值移动拷贝构造函数:解决临时对象拷贝的开销问题友元函数可以把一个函数指定为友元,也可以把整个类指定成友元友元函数不是类的成员函数某类的友元函数的作用域并非该类作用域,如果友元函数是另一类的成员函数,则其作用域为另一类的作用域,否则与一般的函数相同友元函数不是类的一部分,但又需要频繁的访问类的数据成员

2021-04-29 11:44:12 79

原创 2021.4.28学习笔记

嵌入式学习笔记STL(标准模板库)STL六大组件设计模式STL(标准模板库)从逻辑层面看,在stl中体现了泛型化程序设计思想从实现层次看,整个stl是以一种类型参数化的方式实现的STL六大组件1、容器2、迭代器3、算法4、设配器5、函数对象6、分配器容器:vector, list,deque,stack,queuevector:向量:连续存储元素list:双向链表deque:双队列stack:栈:先进后出的值的排列queue:队列:先进先出的值的排列string

2021-04-28 17:08:25 120 1

原创 2021.4.27学习笔记

嵌入式学习笔记约瑟夫环问题异常处理格式本质:约瑟夫环问题约瑟夫问题是个著名的问题:N个人围成一圈,第一个人从1开始报数,报M的将被杀掉,下一个人接着从1开始报。如此反复,最后剩下一个,求最后的胜利者。有13个人,报3的人出局,最后存活谁#include <iostream>using namespace std;template <class T>class Queue{ public: Queue() {

2021-04-27 20:45:17 59

原创 2021.4.26学习笔记

嵌入式学习笔记模板函数模板:通用函数类模板GC模板参数多态化的工具(根据指定参数类型动态处理)函数模板:通用函数用虚拟数据类型代替,等到运行时才进行类型替换定义:template隐式调用:由编译器自行推到数据类型称为隐式调用,不由程序员锁定显示调用:由程序员指定传入类型,不由编译器自行推到complex c2类模板类的虚拟数据类型可以和成员函数相同,但是不能和友元函数重名类外定义的任何函数用到的类的模板都需要进行显式调用对象在创建时一定要显式调用GC所谓参数化的多态性,是指将程序

2021-04-26 16:48:30 160

原创 2021.4.25学习笔记

嵌入式学习笔记运算符的重载全局的运算符重载运算符的重载返回值 operator+(){}operator是关键字全局的运算符重载1、不是所有的运算符都可以重载sizeof ?: . ::2、运算符重载不会改变运算符优先级3、运算符重载不会改变运算符的操作数量4、运算符重载不能有默认参数5、成员函数和全局函数6、-> [] () = 只能作为成员函数重载指针的浅层拷贝:单纯的指针地址赋值(两个变量指向同一个数组)深度拷贝:对指针指向的内

2021-04-25 11:36:03 93 1

原创 2021.04.23学习笔记

嵌入式学习笔记继承:public:protected:private注意继承:public公有继承不改变属性:protected保护继承所有变成保护:private私有继承所有变成私有注意如果基类的类型是private,在子类中依旧不能使用,private中的成员只能在本类中使用如果是protect或public,在子类中可以被使用private继承的子类依旧不能调用private继承:可以被继承,占用子类空间,但不可被使用如果派生类中的成员与基类中的成员同名,只会使用自己的

2021-04-23 17:32:57 74

原创 2021.4.22学习笔记

嵌入式学习笔记构造函数:特点注意匿名对象析构函数friend关键字关键字new,delete和malloc区别:初始化表static构造函数:1、函数名和类名相同2、无返回值complex(){}特点1、构造函数允许重载2、每一个类都有自带的默认构造函数3、一旦你自己定义了构造函数,会将原本的默认构造函数覆盖4、类的对象作为参数传入,会调用复制构造函数,产生新的对象this指针注意类“complex”的复制构造函数不能带有“complex”类型的参数当你的类没有赋值构造函数时,“=

2021-04-22 11:44:04 74

转载 2021.4.20学习笔记

嵌入式学习笔记C++学习命名空间定义使用方法注意事项输入输出对象流运算符注意事项C++对C的实用性加强基本语句的升级关键字的升级类型的升级用new、delete运算符来替代malloc、freeC++对C的升级函数的升级C++学习命名空间定义namespace 名字{变量、函数}使用方法1、使用作用域限定符:命名空间的名字::变量名或者函数名2、使用using关键字导入明明空间:using 命名空间(可能多个命名空间含有相同变量名产生二义性) 或者 using 命名空间::变量名或者函数名:

2021-04-20 21:38:11 89

原创 2021.4.16学习笔记

TCP客户端的实现:1、用socket创建套接字文件,指定使用TCP协议。2、调用connect主动向服务器发起三次握手,进行连接int connet(int sockfd,const struct sockaddr*addr,socklen_t addrlen);功能:向服务器主动发起连接返回值:成功返回0;失败返回1;3、调用read(recv)和write(send)收发数据4、调用close或者shutdown关闭连接...

2021-04-16 17:46:18 65

原创 2021.4.15学习笔记

嵌入式学习笔记UDP协议协议的特点:UDP使用TCP协议与UDP协议对比C/S与B/S的优缺点C/S优点缺点B/S优点缺点:TCP服务实现过程创建套接字:socket函数bind()listen()accept()UDP协议UDP:用户数据报协议。是一种无连接的传输层协议,不会创建连接,所以是一种不可靠的协议。它的优点为速度快,缺点为会丢包、会出错。1、无连接不可靠2、局域网:UDP传送数据的最大长度=1518-18-20-8=1472bit广域网:UDP传送数据的最大长度=65535-IP(头2

2021-04-15 11:48:00 81

转载 2021.4.14学习笔记

这里写目录标题实现网络通信需要哪些支持通信设备通信协议什么是通信协议,作用?TCP/IP协议栈分层的好处实现网络通信需要哪些支持通信设备网卡:pc机自带交换机;路由器光纤,电缆,基站通信协议操作系统自带协议栈(Linux的特点:丰富的协议)裸机开发需要独立的协议栈简单的网络通信只需要学会使用系统API什么是通信协议,作用?通信双方确定一种数据格式,以及通过什么格式来发送TCP/IP协议栈OSI七层网络模型,Linux四层网络模型;物理层:通信介质的信号到数字信号(二进制0100

2021-04-15 08:33:49 236

原创 2021.4.14学习笔记

嵌入式学习笔记多线程存在的问题:链表(线程池)多线程存在的问题:进程所支持的线程数量问题(受限)线程的创建和销毁的开销问题链表(线程池)1、任务队列是不是空2、任务队列为满3、任务队列不为空任务队列为空时,线程池里的线程阻塞等待任务队列为满时,不能添加新的任务任务队列不为空时,线程池里的线程处理任务int thread_num; //已开启的线程数量struct job *head; //任务队列的头指针struct job *tail; //任务队列的尾指针int

2021-04-12 17:44:31 82

原创 2021.4.09学习笔记

嵌入式学习笔记线程等待的目的:线程的状态可结合态可分离态线程分离函数功能返回值参数进程与线程的区别线程等待的目的:保证线程的退出顺序:保证一个线程退出并且回收资源后允许下一个进程退出回收线程退出时的资源情况:保证当前线程推出后,创建的新线程不会复用刚才退出线程的地址空间获得新线程退出时的结果是否时正确退出返回值线程的状态可结合态这种状态下的线程是能被其他进程回收资源或被杀死的可分离态不能被其他进程回收资源或被杀死的,它存储的资源在它终止时由系统自动回收默认情况下,线程是可结合态线程分离

2021-04-09 11:41:36 98

原创 2021.04.08学习笔记

嵌入式学习笔记线程的主动退出格式功能返回值参数线程的主动退出格式pthread_exit#include <pthread.h>void pthread_exit(void *retval);功能线程调用这个函数时,可以主动退出(终止)它和exit()很像,exit()是终止整个程序,而pthread_exit是终止次线程如果你在次线程里面调用错误,调用的是exit,整个线程就终止了返回值成功返回0,失败返回非零值参数retval:线程结束的返回值如果返回值很多时,就

2021-04-08 11:46:17 74

原创 2021.4.02学习笔记

嵌入式学习笔记进程间的通信方式消息队列消息队列的特点线程什么是线程为什么要学习线程线程由哪些组成线程的特点创建线程进程间的通信方式消息队列消息队列的特点(1)传送的是有格式的消息流(2)多进程网状交叉通信,实现大规模数据通信(3)使用内核中的链表(实现机制)posix的消息队列和系统V消息队列区别线程什么是线程线程是进程的一个实体,它是程序运行的最小单位为什么要学习线程1、线程是进程的一个实体,它是程序运行的最小单位,它比进程要消耗更少的资源2、能共享地址空间(进程)(堆栈:程序栈

2021-04-02 17:44:40 71

原创 2021.04.01学习笔记

ctrl+z//暂停信号int kill(pid_t pid, int sig);信号处理sighandler_t signal(int signum, sighandler_t handler);*************************信号的编号 信号的处理机制SIG_IGN:忽略信号SIG_DFL:信号的直接处理管道的优点总结:1.传输数据量少,因此只适合小数据量的传输2.管道数据被读出的时候会自动删除3.管道数据时什么格式输出共享内存无格式:当数据量大且读写效率要

2021-04-01 11:44:21 71

原创 2021.3.31学习笔记

嵌入式系统学习笔记进程间的通信方式(一)管道同一tab里的互相通信不同tab里的互相通信进程间的通信方式(一)管道同一tab里的互相通信#include <stdio.h>#include <string.h>#include <unistd.h>#include <sys/types.h>#include <stdlib.h>#include <sys/wait.h>#include <sys/stat.h&

2021-04-01 09:26:06 77

原创 2021.3.30学习笔记

嵌入式学习笔记Linux学习pipe无名管道补充有名管道Linux学习pipe无名管道补充必须在系统调用fork()前调用pipe(),否则子进程将不会继承文件描述符(1)如果管道的写端不存在,则认为已经读到数据末尾,该函数返回的读出字节数为0(2)如管道写端存在时,如果请求的字节数目大于PIPE_BUF,则返回现有的管道数据字节数;如果不大于,则返回管道现有数据字节数,或请求字节数有名管道mkfifo()int mkfifo(const char *pathname, mode_t mod

2021-03-30 11:44:58 72

原创 2021.03.29学习笔记

嵌入式学习笔记多进程多线程二级目录三级目录多进程多线程多进程优点对用户来说操作系统更加健壮,(一个应用程熙无法破坏另一个进程或操作系统的运行)对于开发者来说,更容易进行内存的读取和写入多进程缺点多任务实现开销大编写能够与其他进程通信或者能够对其他进程操作的应用程序,将要困难的多wait函数族1、wait函数:将当前进程挂起,等待信号来临,再继续运行用来等待子进程的结束二级目录三级目录...

2021-03-29 17:42:57 64

原创 2021.3.26学习笔记

进程控制1、什么是进程:进程是可并发执行的程序,是一个在数据集合上的运行过程(或:当一个程序开始执行后,在开始执行到执行结束的这段时间里,它内存中的部分被称为进程)通俗讲:程序:在硬盘上的可执行文件进程:在执行中的程序2、什么是并发多进程同时运行,多个任务同时执行3、虚拟内存Linux虚拟内存管理技术:4、物理内存:实现在处理器中的内存模块 几百M将硬盘中的一部分存储单元拿来当内存使用 4g(受操作系统的寻址范围影响)0x00000000 -0xffffffff操作系统:内核

2021-03-26 11:40:46 81

原创 2021.3.25学习笔记

嵌入式学习笔记(接上篇)6、写字符的家族:fputc:将某一字符写入文件流int fputc(int c ,FILE *stream);putc:宏Putchar (c )7、printf家族 和scanf家族1、printf2、fprintf:int fprintf(FILE *stream,const char *format,…);Stdoutsprintf():往字符串里写字符串fscanf():从文件流里写读字符串int fcanf(FILE *stream,co

2021-03-25 21:34:48 81

原创 2021.3.24学习笔记

文件夹命令lseek:用来调整光标的位置lseek(文件描述符,光标移动的位置数,光标移动的形式)SEEK_SEEK_CUR:SET:将光标移动到文件开头在增加相应的offset位置SEEK_CUR:将光标移动到文件的当前位置再往后加offset的位置SEEK_END:将光标移动到文件的末尾再增加offset的位置lseek函数返回值:返回值是从文件开头到光标位置有多少个字符6、ftruncate:将指定的文件大小修改成length指定的大小(用来给文件扩容,如果指定的大小小于当前文件

2021-03-24 09:40:56 95

原创 2021.03.23学习笔记

**一、文件编程**Linux文件1、文件本身包含数据(打开文件可以看到数据信息)2、文件属性:ls -l查看属性(元数据:文件按的访问权限,文件的大小,创建日期等)目录也是文件(当创建一个新的目录的时候,系统自动创建两个文件项(.)(…)). :当前目录… :上一级目录根目录下个文件作用dev 设备文件lib 库文件boot 启动文件root 超级用户root的主目录sys 内核信息proc 进程文件系统proc的根目录var 日志文件media 文件系统的挂

2021-03-23 11:23:30 78

原创 2021.3.22学习笔记

expr命令格式:expr expression(命令读入expression参数,计算它的值,然后将结果写入标准输出参数应用规则:1、用空格隔开每个项;2、用\(反斜杠)放在shell特定的字符前面对包含空格和其他特殊字符串要用引号括起来。3、计算字符串长度4、增量计数说明:expr在循环中用于增量计算。先将变量初始化为0,然后循环值加1,反引号的用法时命令替代。··while循环语句while<判别令>do<命令清单 >done当<判别令>返

2021-03-22 11:40:39 82

原创 2021.3.19学习笔记

4、变量表达式test是shell程序中的一个表达式,通常用在流程控制for,while,until,if等结构中,用test命令去判断文件的存在与性质,变量的相互关系语法:test<表达式>如果<表达式>成立,test返回0,反之返回一个非0值字符串比较两个数值的比较逻辑操作,可以进行and/or,与其他条件联合使用文件操作,例如文件是否存在文件的状态等字符串比较-z<字符串>比较字符串的长度是否为0,如果等于0则为是返回0-n<字符串&

2021-03-19 11:41:42 91

原创 2021.3.18学习笔记

显示本地变量echo $变量名 或echo $(变量名)eg: #num=2#echo“this is $numnd”#num=2#echo “this is ${num}nd”eg2要将name的内容多出“yes”,两种方法#name="$name"yes#name=${name}yeseg3:在子shell下变量的作用范围#aa=11#bash (bash开启一个子shell)#echo $aa (输出aa,输出不了,子shell里没有)#aa=22#e

2021-03-18 10:46:33 120

原创 2021.3.17学习笔记

标准输入的文件描述符为0标准输出的文件描述符为1标准错误的文件描述符为2">"重定向符号command > file 把命令的输出结果重定向到新的文件夹里shell就是一个命令解释器,它为用户提供了一个向Linux内核发送请求以便运行程序界面系统级程序目前流行的几种shell:ash、bash、ksh、csh、zsh等#echo$SHELL : 这个命令用来查shell类型Linux里用的shell类型是bash管道pipecommmand1 | command2 [

2021-03-17 17:34:53 99

原创 2021.3.15学习笔记

企业级Makefile编写1.总控makefile:进入各个功能子目录执行make命令,并将所有.o文件生成可执行文件2、功能目录makefile:将功能目录下的所有.c文件编译成.o文件3、脚本目录makefile:定义其他makefile文件所用到的变量阅读makefile顺序;3 - 1 - 21、$(wildcard 模式参数)列:result :=$(wildcard *.c )列出当前目录下所有.c文件2、$(patsubst 模式参数,参数1,参数2)列:result

2021-03-15 17:49:30 84

原创 Linux下makefile实现计算器

如何在Linux中实现简单计算器做一个简单的实验,用c语言编写一个简单的计算器1、首先创建一个make_test文件2、创建加减乘除四个.c文件,内容如下图add.cmul.cdiv.csub.c3、创建主函数4、创建makefile输入make编译即可获得可编译文件。注意:1、hello:hello.c可以写成hello+=hello.c也可以hello:=hello.c2、在makefile中的命令前加入@可以隐藏1.其中clean:rm -rf *.o 的意

2021-03-12 17:45:19 2041

原创 2021.3.12学习笔记

嵌入式系统开发学习笔记嵌入式Linux开发工具–调试器gdb1、gdb也是GUN计划(a/启动运行程序 b/设置断点 c/查看变量值)2、使用gdb之前,使用-g编译选项3、学习gdb命令:gdb可执行文件–tui4、运行命令:run(r) continue(c)5、设置断点:break +行号 break+函数名 break+行号+条件6、查看断点信息:info break7、删除断点:delete+断点号8、单步执行:next step9、查看变量值:print 变量名

2021-03-12 11:45:25 104

原创 2021.3.11学习笔记

嵌入式系统开发学习笔记linux操作补充1、gcc -Wall 1.c 查看代码所有警告2、cp …/add.h 把上一级的add.h复制到这一级库文件库文件:存放函数和变量的仓库,特点:只能使用库里的函数和变量,不能看到其实现静态库(以.a结尾):当使用静态库时,库里的函数和变量只在编译时加载到可执行文件动态库(以.so结尾):当使用动态库时,库里的函数和变量只在运行时加载到可执行文件可执行文件的大小:静态库>动态库---->静态库的内存的使用效率不高可执行文件的速度:

2021-03-11 11:41:07 138 1

原创 2020.3.10学习笔记

嵌入式系统开发学习笔记linux操作补充1、ctrl+shift+c 复制2、ifconfig 查看ip地址3、vim+文件名 编辑文件4、ping 检测虚拟机运行连接是否通畅vim文件编辑简单操作三种模式1、命令模式 进入vim默认进入 插入模式下esc进入命令模式2、底行模式 命令模式下暑促shift+:进入3、插入模式 命令模式下输入a/i进入插入模式三种退出方式1、shift+z+z 保存并退出2、shift+: 进入底行模式 输入q退出 输入wq保存并退

2021-03-10 17:43:19 73

原创 2021.3.9学习笔记

嵌入式系统开发学习笔记Linux操作一、操作命令1、cd / 进入根目录2、cd .进入当前目录3、cd …进入上一级目录4、cd 文件夹名 进入文件夹5、cd b 双击TAb 查看b开头的子目录6、clear 清屏7、su root 切换root权限用户8、su 用户名(jsetc)切换普通用户9、touch 文件名 创建文件10、ls 查看11、man ls 开发者手册12、adduser 添加用户13、sudo 借助管理员身份14.userdel 删除用户15、mk

2021-03-09 11:43:07 190

空空如也

空空如也

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

TA关注的人

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