- 博客(29)
- 资源 (2)
- 收藏
- 关注
原创 静态库、动态库的制作
嵌入式开发工具——静态库的制作库文件1、定义:保存函数和变量,里面的函数和变量只可以是使用,看不到其实现。2、分类:静态库:.a后缀(保存函数和变量,编译时加载到可执行文件中去)动态库:.so后缀(保存函数和变量,执行时加载到可执行文件中去)3、动态库和静态库的区别:(1)使用静态库编译出来的文件大小>使用动态库编译出来的文件大小(2)使用静态库编译出来的执行文件执行速度>使用动态库编译出来的执行文件的执行速度(3)使用静态库编译出来的文件升级<使用动态库编译出来的文件升级
2022-02-06 21:26:38 575
原创 【C语言学习笔记】
C语言知识体系一、C语言概述(历史、特点、标准)(一)关于C语言的几个问题:嵌入式开发为什么选择C语言?内核为什么选择C语言开发?C语言与C++对比C语言与汇编语言的对比C语言的开发方向(二)C语言的基础知识点机器码C语言之父C语言语法标准C语言的语法版本二、数据类型(数据集基本类型、输入输出)(一)数据类型的分类基本数据类型(编译器自带的类型)复合数据类型(多个内置类型组成的新类型)void类型:void *(万能指针):==多态==(二)定义变量(注意编码规范)(三)基本数据类型的知识点1、各种数据类型
2022-01-26 14:04:07 607
原创 嵌入式系统开发小白学习笔记(28)
嵌入式系统开发C++基础异常处理trycatchthrowC++基础异常处理定义:捕获逻辑错误或者语法错误,进行推导trytry{//有可能异常的语句}catchcatch{//捕获异常语句}throw抛出异常异常处理的好处:在抛出异常之后,会将之前的创建的类的对象进行释放。创建自定义的栈的解旋释放#include <iostream>#include <cstring>using namespace std;class myexcept
2021-04-28 14:18:53 111
原创 嵌入式系统开发小白学习笔记(27)
嵌入式系统开发C++基础模板(一)函数模板(二)类模板C++基础模板1、定义:参数多态化的工具(根据指定参数类型的动态处理)2、GC:所谓的参数的多态性,是指将程序所处理的对象的类型参数化,使一段程序代码可以处理不同类型的对象。3、作用:采用编程模板,可以将各种逻辑功能相同而数据类型不同的程序提供一种代码共享机制(模板用于表达逻辑结构,但具体元素数据而理性不同的数据)(一)函数模板定义:为所有的函数提供唯一的一段函数代码,增强了函数设计的通用性。函数模板不是函数,不能被执行。置换代码中的类型
2021-04-26 16:48:26 282 2
原创 嵌入式系统开发小白学习笔记(25)
嵌入式系统开发C++基础构造函数(一)特点(二)匿名对象(独属于C++)析构函数friend关键字:友元函数关键字:new和delete初始化表(可以初始化变量或者常量)C++基础构造函数(一)特点(1)函数名和类名相同(2)无返回值,返回值就是构造函数本身例:complex(){}构造函数允许重载1、每一个类都有自带的默认构造函数2、一旦自己定义了构造函数,会将原本的默认函数覆盖3、复制构造函数不能是对象本身4、 complex s4 = s1;(s1未复制函数)5、当类没有复制
2021-04-23 17:43:03 440 1
原创 嵌入式系统小白学习笔记(24)
嵌入式系统开发C++基础(一)命名空间(二)输入输出1、对象:2、流运算符:3、注意事项:(三)C++对C的实用性加强1、基本语句的升级2、关键字的升级3、类型的升级(1)引入了bool类型(2)引入了”引用“(3)用new、delete运算符来替代malloc、free(三)C++对C的升级1、函数的升级C++基础(一)命名空间1、定义:namespace 名字{变量、函数}使用方法(1)使用作用域限定符:命名空间的名字::变量名或者函数名(2)使用using关键字导入明明空间:using
2021-04-20 11:39:44 367
原创 嵌入式系统开发小白学习笔记(23)
这里写目录标题嵌入式系统开发网络通信一、实现网络通信需要哪些支持1、通信设备2、通信协议二、通信协议及其作用TCP/IP协议栈嵌入式系统开发网络通信一、实现网络通信需要哪些支持1、通信设备(1)网卡:pc机自带(2)交换机(3)路由器(4)光纤(5)电缆(6)基站2、通信协议(1)操作系统自带协议线(Linux的特点:丰富的协议)(2)裸机开发需要独立的协议栈简单的网络通信只需要学会系统API二、通信协议及其作用1、通信双方确定一种格式,以及通过什么形式来发送TCP/IP协
2021-04-15 11:25:46 321 1
原创 嵌入式系统开发小白学习笔记(22)
嵌入式系统开发学习笔记嵌入式系统开发链表1、任务队列2、线程池example:嵌入式系统开发链表1、任务队列(1)任务队列为空(2)任务队列为满(3)任务队列为不为空任务队列为空时,线程池里的线程阻塞等待任务队列不为空时,线程池里的线程处理任务任务队列为满,不能再添加新的任务2、线程池(1)线程池里的线程数量(2)线程池里的工作线程数量(3)任务队列的大小(4)任务队列锁example:#include <stdio.h>#include <stdli
2021-04-12 17:40:38 1735 1
原创 嵌入式系统开发小白学习笔记(21)
嵌入式系统开发上期回顾嵌入式系统开发线程补充内容一、线程等待的目的:二、线程的状态:上期回顾嵌入式系统开发小白学习笔记(20)嵌入式系统开发线程补充内容一、线程等待的目的:(1)保证线程的退出顺序:保证一个线程退出并且回收资源后,允许下一个进程退出。(2)回收线程退出时的资源情况:保证当前线程退出后,创建新线不会复用刚才退出线程的地址空间。(3)获得新线程退出时的结果是否正确退出返回值。二、线程的状态:1、可结合态(默认状态):这种状态下的线程是可能被其他进程回收资源或被杀死的。2、可
2021-04-09 10:22:29 170
原创 嵌入式系统开发小白学习笔记(20)
嵌入式系统开发上期回顾嵌入式系统开发进程间的通信方式——线程线程退出函数注册线程退出处理函数上期回顾嵌入式系统开发小白学习笔记(19)嵌入式系统开发进程间的通信方式——线程线程退出函数1、语法:pthread_exit()void pthread_exit(void *retval)2、功能(1)线程调用这个函数时,可以主动退出(终止)(2)它和exit()很像,exit()是终止整个程序,而pthread_exit是终止次线程,如果你在次线程里调用错误,调用的是exit,整个线程就终
2021-04-08 11:45:09 164
原创 嵌入式系统开发小白学习笔记(19)
嵌入式系统开发上期回顾嵌入式系统开发进程间的通信方式消息队列上期回顾嵌入式系统开发小白学习笔记(18)嵌入式系统开发进程间的通信方式消息队列1、特点:(1)传送的是有格式的消息流(2)多进程网状交叉通信,实现大规模数据通信(3)使用内核中的链表(实现机制)posix的消息队列和系统V消息队列区别线程:2、什么是线程?线程是一个实体,它是程序运行的最小单位3、为什么学习线程(1)线程是进程的一个实体,它是程序运行的最小单位,它比进程要消耗更少的资源(2)能共享地址空间(进程)(
2021-04-02 10:22:24 241 1
原创 嵌入式系统开发小白学习笔记(18)
嵌入式系统开发上期回顾嵌入式系统开发进程间的通信反方式(三)信号量信号:软中断(程序间信息传递的媒介)信号处理共享内存开辟共享内存上期回顾嵌入式系统开发小白学习笔记(17)嵌入式系统开发进程间的通信反方式(三)信号量信号:软中断(程序间信息传递的媒介)1、ctrl+z:暂停信息2、ctrl+c:停止信号3、int kill(pid_t pid,int sig)信号处理1、sighandler_t signal(int signum,signhandler_t handler);信号
2021-04-01 11:11:37 194
原创 嵌入式系统开发小白学习笔记(17)
嵌入式系统开发上期回顾一级目录二级目录三级目录上期回顾嵌入式系统开发小白学习笔记(16)一级目录二级目录三级目录
2021-03-31 17:31:23 197 3
原创 嵌入式系统开发小白学习笔记(16)
嵌入式系统开发上期回顾嵌入式系统开发(接上期)进程间的通信方式(一)管道(二)消息队列(三)信号量(四)共享内存(五)套接字上期回顾嵌入式系统开发小白学习笔记(15)嵌入式系统开发(接上期)进程间的通信方式(一)管道二、有名管道1、(二)消息队列(三)信号量(四)共享内存(五)套接字...
2021-03-30 10:58:55 192 1
原创 嵌入式系统开法小白学习笔记(15)
嵌入式系统开发上期回顾嵌入式系统多进程多线程三级目录上期回顾嵌入式开发小白学习笔记(14)嵌入式系统多进程多线程1、多线程的优缺点:优点(1)对用户来说,操作系统将变得更加健壮一个应用程序无法破坏另一个进程或操作系统的运行(2)对开发者来说,更容易进行内存的读取和写入缺点:(1)多任务实现开销大(2)编写能够与其他进程通信或者能够对其他进程操作的应用程序,将要困难的多三级目录...
2021-03-29 11:28:04 1023 2
原创 嵌入式系统开发小白学习笔记(14)
嵌入式系统开发嵌入式系统开发工具进程控制Linux虚拟内存管理技术嵌入式系统开发工具进程控制1、定义:(1)、进程是可并发执行的程序,是一个在数据集合上的运行过程。(2)、当一个程序开始执行之后,在开始到执行结束的这段时间里,它内存中的部分被称为进程。简单来说程序是在硬盘中可执行的文件进程是在执行中的程序2、并发过程(1)多个进程同时运行,多个任务同时执行。3、虚拟内存4、物理内存(1)、实际在处理器中的内存模块(2)、将硬盘中的一部分存储单元拿来当内存使用 4g左右
2021-03-26 09:35:15 1328 4
原创 嵌入式系统开发小白学习笔记(13)
这里写目录标题上期回顾嵌入式系统开发(一)文件编程9、写字符家族9、printf家族和scanf家族上期回顾嵌入式系统开发小白学习笔记(12)嵌入式系统开发(一)文件编程9、写字符家族(一)、fputc(1)、功能:将某一字符写入文件流(2)、int fputc(int c,FILE *stream)(二)、putc(1)、宏(三)、putchar()9、printf家族和scanf家族(1)、printf(2)、fprintf:int fprintf(FILE*strea
2021-03-25 11:42:16 202
原创 嵌入式系统开发小白学习笔记(12)
嵌入式系统开发上期回顾嵌入式系统开发(一)文件编程(接上期)三上期回顾嵌入式系统开发小白学习笔记(11)嵌入式系统开发(一)文件编程(接上期)5、lseek函数(1)功能:用于调整光标的位置(2)语法:(文件描述符,光标移动的位置数,光标的移动形式)SEEK_SET:将光标移动到文件开头再增加相应的offset位置SEEK_CUR:将光标移动到文件的当前位置再往后加offset的位置SEEK_END:将光标移动到文件的末尾在增加offset的位置lseek函数返回值:返回值是文件从开
2021-03-24 14:06:50 232 1
原创 嵌入式系统开发小白学习笔记(11)
嵌入式系统开发上期回顾嵌入式系统开发工具(一)文件编程Linux文件(二)进程线程编程(三)TCP/UDP上期回顾嵌入式系统开发小白学习笔记(10)嵌入式系统开发工具(一)文件编程Linux文件(1)文件本身包含数据(打开文件可以看到数据信息)(2)文件属性:ls -l查看属性(元数据:文件按的访问权限,文件的大小,创建日期等)目录也是文件(当创建一个新的目录的时候,系统自动创建两个文件项(.)(…))(二)进程线程编程(三)TCP/UDP...
2021-03-23 08:24:19 2249 9
原创 嵌入式系统开发小白学习笔记(10)
这里写目录标题嵌入式系统开发学习笔记二级(一)expr命令(二)while循环语句嵌入式系统开发学习笔记二级(一)expr命令(1)格式:expr expression(命令读入expression参数,计算它的值,然后加将结果写入标准输出)(2)参数应用规则1、用空格隔开每个项2、用\(反斜杠)放在shell特定字符前面对包含空格和其他特殊字符的字符串要用引号括起来3、计算字符串长度4、增量计数说明:expr在和循环中用于增量计算。先将变脸和初始化为0,然后循环加值1,反引号的用
2021-03-22 17:25:35 1303 4
原创 嵌入式系统开发小白学习笔记(9)
嵌入式系统开发上期回顾嵌入式系统开发工具(接上期)shell变量类型(四)变量表达式上期回顾嵌入式开发小白学习笔记(8)嵌入式系统开发工具(接上期)shell变量类型(四)变量表达式1、test时shell程序中的一个表达式,通常用在流程控制for、while、until、if等结构中,用test命令判断文件的存在与性质,变量的相互关系语法:test<表达式>如果<表达式>成立,test返回0,反之返回一个非0值。2、字符串比较(比较的是长度)(1)-z<字
2021-03-19 11:08:31 2353 13
原创 嵌入式系统开发小白学习笔记(8)
嵌入式系统开发上期回顾嵌入式系统开发工具(接上期)shell变量类型(一)本地变量(二)环境变量--(系统变量)(三)特殊变量特殊符号上期回顾嵌入式系统学习笔记(7)嵌入式系统开发工具(接上期)shell变量类型(一)本地变量1、显示本地变量example1#num=2#echo “this is $numnd”#num=2#echo “this is ${num}nd”第一个不加{}时,输出不出结果。example2要将name的内容多出出"yes"方法一:#name
2021-03-18 19:13:11 360 1
原创 嵌入式系统开发学习笔记(7)
嵌入式系统开发一级目录二级目录三级目录一级目录二级目录1、标准输入的文件描述符为0,标准输出的文件描述符为1,标准错误的文件描述符为2.2、>:重定向符号command > file将命令输出的结果,重定向到file文件。3、三级目录...
2021-03-17 18:51:11 2131 9
原创 嵌入式系统开发学习笔记(6)
嵌入式系统开发嵌入式Linux开发工具编译器--gcc调试器--gdb工程管理器--makegit版本管理shell编程三级目录嵌入式Linux开发工具编译器–gcc1、静态库、动态库的制作2、库的使用调试器–gdb目标:可是调试简单的错误以及内存错误工程管理器–make1、目标:企业级makefile、cmakegit版本管理shell编程三级目录...
2021-03-17 15:01:50 218 3
原创 嵌入式系统开发学习笔记(5)
嵌入式系统开发学习笔记嵌入式系统开发企业级Makefile编写文件名称函数说明嵌入式系统开发企业级Makefile编写文件名称1、myhead:头文件2、总控Makefile:进入各个功能子目录执行make命令,并将所有的.o文件生成可执行文件3、scripts:脚本文件4、功能目录Makefile:将功能目录下所有的.c文件编译成.o文件5、脚本目录Makefile:定义其他Makefile文件所用到的变量阅读Makefile顺序:5–>2–>4函数说明1、定义wil
2021-03-16 09:45:48 2593 12
原创 嵌入式系统开发学习笔记(4)
嵌入式系统开发学习笔记嵌入式Linux开发工具调试器调试器—gdbgdb命令gdb命令使用工程管理器工程管理器—make嵌入式Linux开发工具调试器调试器—gdb1、gdb也是GUN计划(a\启动程序 b\设置断点 c\查看变量值)2、使用gdb之前:需要用-g编译选项gdb命令1、gdb 可执行文件 --tui:进入gdb运行界面2、run(r):运行命令3、continue(c):运行命令4、break + 行号:设置断点5、break + 函数名:设置断点6、break +行
2021-03-12 17:29:28 2440 12
原创 嵌入式系统开发学习笔记(3)
嵌入式系统开发学习笔记Linux文件操作命令库文件说明静态库的制作动态库的制作Linux文件操作命令命令符1、gcc -Wall 显示所有警告2、cp …/文件名 . 将上一级目录文件复制到当前目录库文件说明库文件(存放在lib文件夹中):存放函数和变量的仓库。特点:只能使用库里的函数和变量,不能看到其实现。静态库(通常以.a结尾):当使用静态库时,库里的函数和变量是在编译时加载到可执行文件。动态库(通常以.so结尾):当使用动态库时,库里的函数和变量是在运行时加载到可执行文件的。
2021-03-11 11:44:51 1399 5
原创 嵌入式系统开发学习笔记(2)
嵌入式系统开发学习笔记文件操作命令网络操作命令标题文件操作命令命令符1、vim 文件编辑器三种模式:命令模式下,shift+zz退出vim。(a/i) 进入插入模式,esc返回命令模式。(shift+:) 进入底层模式,q+!+enter强制退出vim。2、网络操作命令命令符1、ifconfig 用于2、ping 用于检测虚拟机远程连接是否通畅标题...
2021-03-10 16:48:16 358 1
原创 嵌入式系统开发学习笔记(1)
嵌入式系统开发学习笔记Linux操作Linux用户操作命令Linux文件操作命令文件权限说明部分操作截图如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入Linux操作Linux用户操作命令Linux文件操作命令文件权限说明Linux用户操作命令命令符01、cd / 进入根目录02、
2021-03-09 11:11:48 2683 10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人