- 博客(41)
- 收藏
- 关注
原创 【嵌入式开发】SecureCRTPortable工具进行串口信息监听打印
讲述SecureCRTPortale工具的使用技巧,以及进行串口连接及连接后进行串口信息监听打印的使用技巧
2024-04-18 19:25:58
2119
2
原创 【Linux系统下CoreDump的生成与调试】
讲解在Linux下开发时如何利用CoreDump文件来定位解决问题,该文章详细讲述了CoreDump文件应该如何生成、如何命名、如何存储、如何利用该文件进行问题调试。
2024-04-16 14:34:55
1824
1
原创 特别篇 --- SQLite数据库(嵌入式学习用法)
一、数据库基本概念1.数据(Data)能够输入计算机并能被计算机程序识别和处理的信息集合2.数据库(Database)数据库是在数据库管理系统管理和控制之下,存放在存储介质上的数据集合数据库就是管理和控制数据的大型的软件二、常用的数据库1.大型数据库》Oracle公司是最早开发关系数据库的厂商之一,其产品支持最广泛的操作系统平台,目前Oracle关系数据库产品的市场占有率名列前茅》IBM的DB2是第一个具备网上功能的多媒体关系数据库管理系统,支持包括Linux在内的一系列平台什么是关系型
2021-04-04 23:49:52
698
原创 嵌入式学习DAY30 --- 文件的上传、Udp的服务器和客户端、IO模型
嵌入式入门学习笔记,遇到的问题以及心得体会!DAY30概述:一、文件的上传二、Udp的服务器和客户端三、IO模型四、Sql语句一、文件的上传1、本质:客户端将本地的文件拷贝给服务器2、客户端:0、发送文件头(文件头 = 文件名+文件大小 fileHead = “1.txt#1199”)1、以只读方式打开一个存在的文件(文件是你自己随机选择的)While(1){ (1)读文件 (2)将读到的内容发送给服务器 }2、关闭文件3、服务器:0、接收文件头1、
2021-04-04 23:26:44
314
原创 嵌入式学习DAY29 --- 实现服务器和客户端的通信,OSI模型、TCP/IP、UTP(网络编程开始学习)
嵌入式入门学习笔记,遇到的问题以及心得体会!DAY29网络编程学习目标:1、实现不同主机之间的进程间通信(pc对pc)2、服务器要同时响应多个客户端(并发服务器)3、网络超时检测4、广播和组播5、本地进程间通信6、项目之前的项目:学生信息的增删改查,并且将学生的信息保存在本地的文件中学习过网络编程之后:服务器:响应客户端的指令,客户端增删改查的信息保存在服务器端数据库中、并发服务器客户端:注册 登陆 增删改查概述:一、OSI模型与TCP/IP协议体系结构二、TCP和UD
2021-04-04 21:32:24
1239
原创 嵌入式学习DAY28 --- 线程、同步和互斥问题、如何实现同步和互斥?
嵌入式入门学习笔记,遇到的问题以及心得体会!DAY28概述:一、线程二、同步和互斥问题三、如何实现同步四、如何实现互斥笔记:一、线程1、什么是线程:(1)线程是轻量级的进程(2)线程存在于进程内,不能独立存在(3)线程参与CPU调度,进程是系统资源分配最小单位,线程是系统调度的最小单位(4)在单核CPU中,多线程并发属于伪并发,但是不牵扯虚拟地址空间的切换,所以开销比进程间切换要小很多(5)在多核CPU中,多线程可以实现真并发前面我们已经提到,进程是系统中程序执行和资源分
2021-04-02 19:50:31
4905
9
原创 嵌入式学习DAY27 --- System V 共享内存 ,POSIX 信号量 ,POSIX 消息队列
嵌入式入门学习笔记,遇到的问题以及心得体会!DAY27概述:一、System V 共享内存二、POSIX 信号量三、POSIX 消息队列笔记:注意:不论是怎样的通信,只要牵扯公共资源读读不互斥读写互斥写写互斥一、System V 共享内存1.概念:可以说,共享内存是一种最为高效的进程间通信方式。因为,进程可以直接读写内存,不需要任何数据的复制。为了在多个进程间交换信息。内核专门流出了一块内存。这段内存可以由需要访问的进程将其映射到自己的私有地址空间。因此,进程就可以直接读写这
2021-03-31 19:56:41
311
原创 嵌入式学习DAY26 --- 进程间通信(管道(有名,无名),信号,共享内存)
嵌入式入门学习笔记,遇到的问题以及心得体会!DAY25概述:一、进程资源的回收二、守护进程三、进程间通信机制四、无名管道五、有名管道六、信号七、使用有名管道,实现聊天(代码实现)笔记:特殊的进程:1.孤儿进程父进程先于子进程退出,子进程被init进程收养,子进程被称为孤儿进程2.僵尸进程在僵尸态的进程,子进程退出后,父进程没有回收子进程的资源一、进程资源的回收问题如何避免僵尸进程的产生,即子进程退出后,父进程回收子进程的资源。回收的手段:wait()和waitpid
2021-03-30 19:27:19
410
2
原创 嵌入式学习DAY25 --- 进程线程开始学习,进程的基本概念以及创建退出
嵌入式入门学习笔记,遇到的问题以及心得体会!DAY25笔记:并发编程:同一时刻实现多个任务同时执行,这样的编程称之为并发编程。1.并发编程的核心: 进程 线程 进程间通信 线程的同步和互斥2.多任务的实现:多任务是通过操作系统的任务调度策略实现并发的。多进程并发是通过时间片的快速轮转,给用户一个真并发的错觉。多线程并发在多核cpu机器上,则是以真并发形式存在。3.任务,进程,线程之间的关系:任务:是一个逻辑概念通常是一个逻辑操作(一个程序的执行)可以由多个进程/线程组
2021-03-30 18:23:50
346
原创 嵌入式学习DAY24 --- 自主完成一个项目《电商直播平台管理系统》,运用C语言、数据结构等知识
电商直播平台管理系统定义一个直播平台的结构体,定义如下几种属性:1.定义每个直播间的唯一房间号为主Key ID;2.定义直播间中的主播姓名为关键字 Name;3.定义直播间所售卖的商品种类为关键字 Items;4.定义直播间所卖出的销售额为关键字 Sales;一.功能1.创建:创建一个用来描述直播平台的哈希表。2.增加:在直播平台中增加新的直播房间以及直播间中的主播、商品种类、 销售额3.删除:在直播平台中删除一个直播间以及直播间里的主播、商品及销售额信息4.修改:在直播平台中修改直
2021-03-29 20:25:58
639
原创 嵌入式学习DAY23 --- 排序、查找,哈希表,用哈希表编写一个 <学生信息管理系统>
嵌入式入门学习笔记,遇到的问题以及心得体会!DAY23概述:一.排序1.插入排序2.快速排序二.查找1.顺序查找2.折半查找3.分块查找三.哈希函数(哈希表)1.概念2.用法注意点四.运用哈希表来编写实现一个<学生信息管理系统>笔记:一.排序1.插入排序:先构建一个有序的序列,遍历无序的序列,将无序的序列中的每一个元素和有序序列中的元素从后向前进行比较,如果比有序序列中的小,就继续比较,直到找到合适的位置,然后插入void InsertSort (ElemTy
2021-03-29 19:35:24
3074
8
原创 嵌入式学习DAY22 --- 链式栈,队列,二叉树的存储、递归遍历、层次遍历(数据结构)
嵌入式入门学习笔记,遇到的问题以及心得体会!DAY21笔记:一.链式栈的实现:1.stack.h ----------------------------------------------------- 如下#ifndef _STACK_H_#define _STACK_H_typedef int data_t;typedef struct StackNode{ data_t data; struct StackNode *pNext;}StackNode
2021-03-23 20:16:47
353
原创 嵌入式学习DAY21 --- 数据结构(双向链表、栈、队列)
嵌入式入门学习笔记,遇到的问题以及心得体会!DAY21笔记:1、双向链表Struct DoubleLinkNode{Struct DoubleLinkNode *pPri;Data_t data;Struct DoubleLinkNode *pNext;};Struct DoubleLink{Struct DoubleLinkNode *pHead;Int count;}头插:pNode->pNext = pHead;pHead->pPri = pNod
2021-03-22 19:23:32
281
原创 嵌入式学习DAY20 --- 数据结构(单链表)
嵌入式入门学习笔记,遇到的问题以及心得体会!DAY18笔记:存储结构:不连续的链式存储逻辑结构:线性 一对一运算:创建、增加、删除、修改、排序、销毁Struct LinkNode //描述每一个节点的{Data_t data;Struct LinkNode *pNext;};Struct Link //描述单链表的{Struct LinkNode *pHead;}链表的插入:删除一个节点:销毁链表:代码实现:第一步:编辑一个link.h文件用来定
2021-03-22 18:58:55
219
原创 嵌入式学习DAY19 --- 数据结构开始学习(时间复杂度,顺序表)
嵌入式入门学习笔记,遇到的问题以及心得体会!DAY191、什么是数据结构1、数据结构就是研究数据元素之间关系的一门计算机的基础学科2、数据结构主要是研究非数值性程序设计中计算机操作的对象(数据)及其相互间关系和运算的学科逻辑结构:存储结构:2、为什么要学习数据结构以前我们在c语言程序,只需要想着我只要实现题目要求的功能就可以了,数据结构研究的是如何让程序运行起来更加高效,数据在内存中的操作更加流畅。3、学习数据结构的方法数据结构的特点:1、比较抽象,对逻辑思维能力要求较高2
2021-03-22 18:35:55
194
原创 统计自己Ubuntu系统中家目录下,一共敲了多少行代码。 要求:使用C语言实现
统计自己从C学习开始到现在,一共敲了多少行代码。要求:1.使用C语言实现#include <stdio.h>#include <sys/types.h>#include <dirent.h>#include <string.h>#include <unistd.h>#include <stdlib.h>int read_dir(char *pathname, char *filename);int file_typ
2021-03-17 20:46:10
171
原创 嵌入式学习DAY18 --- 文件IO,库
嵌入式入门学习笔记,遇到的问题以及心得体会!DAY18笔记:day2.>文件IO>库文件IO>文件描述符:文件描述符是文件IO操作文件的对象是一个大于等于0的整数特殊的文件描述符:0:stdin1:stdout2:stderr>函数: 打开文件: open: /*调用时需要添加的头文件*/ #include <sys/types.h> #include <sys/stat.h> #
2021-03-17 20:38:56
236
原创 嵌入式学习DAY17 --- IO进程的学习
嵌入式入门学习笔记,遇到的问题以及心得体会!DAY14概述:什么是IO什么是标准IO什么是文件IO文件IO和标准IO的区别什么时候使用标准IO和文件IO标准IO的特点标准IO的接口笔记:什么是IO凡是操作输入输出的都是IO操作文件属于IO在Linux/类Unix系统中,操作设备也是IO什么是标准IO标准IO是由ANSI C定义的一组操作IO的接口函数。是由标准C库提供。只要安装了标准C库,就能够使用标准IO。什么是文件IO文件IO是类Unix操作系统提供给
2021-03-16 19:03:05
273
原创 嵌入式学习DAY16 --- 1.工程目录的搭建 ,2.Make & Makefile ,3.条件编译
嵌入式入门学习笔记,遇到的问题以及心得体会!DAY14概述:1.工程目录的搭建2.Make & Makefile3.条件编译笔记:1.工程目录的搭建工程名目录--------->bin:该目录主要存储工程的可执行文件--------->obj:该目录主要存储工程中的目标文件--------->include:该目录主要存储工程目录中的头文件--------->src:该目录主要存储工程中的原文件C工程源文件中的文件类型:源文件:纯代码文件头文件:
2021-03-16 18:47:19
234
原创 嵌入式学习DAY15 --- 结构体,共用体,枚举,字节序(大小端)
嵌入式入门学习笔记,遇到的问题以及心得体会!DAY15概述:1、结构体2、共用体3、枚举4、大小端5、条件编译(书写头文件)----》工程目录笔记:1、结构体:----》关键字:struct概念:可以存放多种数据类型的集合,跟数组类似,只不过比数组更兼容注意:结构体是一种构造数据类型定义格式:----》如何构造一个结构体类型struct 结构体名{数据类型1 成员1;数据类型2 成员2;…数据类型n 成员n;};如何利用构造好的结构体类型定义一个变量?回顾:之前如何
2021-03-15 20:44:51
290
原创 嵌入式学习DAY14 --- 指针函数,函数指针
嵌入式入门学习笔记,遇到的问题以及心得体会!DAY14概述:1.指针函数2.函数指针笔记:1,指针函数2,函数指针1、指针函数:概念:返回值类型是指针的函数定义格式:数据类型 函数名(数据类型1 参数名1,数据类型2 参数名2){函数体;}注意:处于返回值类型的位置必须是指针类型案例:1 #include <stdio.h> 2 3 4 char * Func() 5 { 6 //定义一个字符数组 7 //char
2021-03-15 17:05:20
272
原创 VMware Workstation Pro 虚拟机Ubuntu开机主机蓝屏死机,解决方法,VMwarepro 16下载教程 ,许可证
我的电脑2021年1月份购入,到手之后装入VMware Workstation Pro15版本,装入Ubuntu开机会直接蓝屏报错误代码然后死机。接着我在CSDN上找了好多方法来解决问题,各种关Vm虚拟机保护之类的,还有修改参数的方法都试了,有的方法可以解决蓝屏但是接下来开启会显示不兼容。上述方法我就不再赘述了,因为确实没解决我的方法,但是确实有解决很多人的方法,论坛里几个高赞高浏览的大家可以去搜索。我后来发现是windows10升级之后的一个插件与VM不兼容导致,所以开机蓝屏,尤其是VMware
2021-03-11 14:54:42
6249
35
原创 求一个字符串中出现的不同的字符的个数
示例:输入一串字符“anhhAkjJ”得到的结果应该是:“7”方法一:利用ascll码0-127,定义一个128大小的字符串#include <stdio.h>#define M 100#define N 128int cal_count_str(char *pstr,int *COUNT){ //入参检查 if(NULL == pstr || NULL == COUNT) { printf("NULL_ERROR!\n"); return -1; } /
2021-03-11 14:28:54
515
原创 嵌入式学习DAY13 --- shell脚本的用法和编写讲解
嵌入式入门学习笔记,遇到的问题以及心得体会!DAY13概述:1.shell脚本(编程)2.shell和shell脚本3.shell的分类4.脚本的书写步骤5.shell编程的步骤6.shell的基本语法7.shell程序和语句笔记:1,shell脚本(编程)编程:编译型(gcc) 和 解释型(bash)2,shell和shell脚本?—》shell :命令行解释器shell脚本:shell命令的有序集合3,shell的分类:(1)sh:首发版本,不含有Tab,上下键历史命
2021-03-11 11:02:30
576
原创 嵌入式学习DAY12 --- Linux操作系统的各个命令讲解
嵌入式入门学习笔记,遇到的问题以及心得体会!DAY11笔记:命令:三要素:格式:命令名称 【选项】【参数】注意:(1)命令名称一定不可以省略,但是选项和参数是可选的(2)选项和参数是可有可无可多个—》ls -l -a 或者 ls -la(3)如果想把多条命令写在一行,则应该用分号隔开 —》cd /home;ls(3)如果一行写不完,则应该在其后加上注意:\和命令之前要有空格才行。(1)用户切换相关su :切换用户su - :默认切换到root用户su - 用户名 :切换
2021-03-09 18:28:56
200
1
原创 嵌入式学习DAY11 --- LinunxC开始学习,Linux的发展史,linux的发行版本,软件包管理,linux的体系结构,linux的shell命令
嵌入式入门学习笔记,遇到的问题以及心得体会!DAY11概述:1.Linux的发展史2.linux的发行版本3.软件包管理4.linux的体系结构5.linux的shell命令笔记:LinuxC课程大纲:1,linux的发展史(发行版本)2,Linux shell命令3,shell 编程(脚本)4,C高级(函数指针,指针函数,结构体,共用体,枚举,条件编译)5,Makefile(工程管理) / 考试1、Linux的发展史2,linux的发行版本:第一类:商业公司维护的发行版
2021-03-08 20:44:13
200
原创 嵌入式学习DAY10 --- 封装子函数,GDB调试,gcc编译流程
嵌入式入门学习笔记,遇到的问题以及心得体会!DAY10概述:今日内容不多,C语言大致运用内容完结,后续还有未讲解到的会再讲。1.封装子函数2.GDB调试3.gcc编译流程笔记:1,main函数传参2,递归函数递归函数:自己调用自己三步走:1,什么时候开始?2,什么时候结束?3,每一步需要干什么?1226381826练习:封装子函数实现二维字符数组的排序(结合switch语句)三个子函数:1,输入,2,输出,3,排序(此代码是重点,需反复敲打思考)#include &l
2021-03-07 12:07:09
344
原创 嵌入式学习DAY9 --- const修饰的指针 ,函数 ,函数的声明 ,指针作为参数传参 ,一维和二维数组的传参
嵌入式入门学习笔记,遇到的问题以及心得体会!DAY9概述:1,const修饰的指针2,函数3,函数的声明4,指针作为参数传参5,一维和二维数组的传参笔记:1,const修饰的指针int a = 90;a = 100;printf(“a = %d\n”,a);//100const int a = 90;a = 100;总结:1,被const 修饰的变量的存储位置并不会迁移到常量区,原来在哪里,现在依然在哪里,只是被常量化了2,const 修饰谁,谁就不能被更改,没有修饰谁,谁
2021-03-04 18:48:52
310
3
原创 嵌入式学习DAY8 --- 指针和二维数组,数组指针,指针数组
嵌入式入门学习笔记,遇到的问题以及心得体会!day8概述:一,指针和二维数组二,数组指针三,指针数组笔记:一、指针和二维数组总结:在二维数组中:arr[0][0]的类型是int ,而arr[0] = &arr[0][0],所以arr[0]的类型是int *,又因为arr = &arr[0],那么为什么arr的类型不是int **?解释:(1)因为arr+1移动了一个一维数组的大小,如果是int **,那么所指向类型是int *,因此加1应该移动4个字节,很明显不符合
2021-03-03 20:35:13
290
3
原创 嵌入式学习DAY7 --- 一级指针、二级指针,指针与一维数组
嵌入式入门学习笔记,遇到的问题以及心得体会!DAY6笔记:‘&’ :取址运算符‘*’ :取值运算符总结:指针变量只能用来存地址可以通过指针变量间接访问(查看/修改)所指向空间的内容eg:int a = 100;int *p = &a;int b = 80;&a++;//errorp++;//OK&a = &b;//errorp = &a;p = &b;//OKeg:int a = 90;char ch = ‘K’
2021-03-03 08:36:34
231
原创 嵌入式学习DAY6 --- 一维数组字符串处理相关的函数、二维数组讲解、指针初步讲解!
嵌入式入门学习笔记,遇到的问题以及心得体会!DAY6概括:一,字符串处理相关的函数:1,strlen2,strcpy(strncpy)3,strcat(strncat)4,strcmp(strncmp)二,二维数组数组的特点:(1)数据类型相同(2)内存连续如何定义一个一维数组?存储类型 数据类型 数组名[元素个数];如何定义一个二维数组?存储类型 数据类型 数组名[行数][列数];三、指针:地址:内存单元的编号(内存都是以字节为单位进行划分,以编号的形式来代表每一个字
2021-03-01 18:36:51
1404
5
原创 嵌入式学习DAY5 -- C语言(输入输出占位符,循环,以及重点讲解一维数组)
man手册:共9章:关心前三章即可:第一章:shell命令第二章:系统调用函数第三章:库函数逗号运算符:格式:表达式1,表达式2,表达式3.。。。。。,表达式N运算法则:从左至右,依次执行每一个表达式,并且将最后一个表达式的结果作为整个逗号表达式结果#include <stdio.h>int main(){ int a = 2,b = 4,c = 1; int d = (a++,--b,++c); printf("b = %d\n",++b); a--; pr
2021-02-27 16:08:15
443
4
原创 嵌入式学习DAY4 -- 今日是对前三天的总结 干货量大
嵌入式入门学习笔记,遇到的问题以及心得体会!DAY4今日上午进行循环语句的学习,下午对前三天的学习进行了系统的复习,进行了查漏补缺!今日笔记着重会对前两天的学习进行加深记忆与补漏!且今日笔记加入了一些对计算机基本组成原理的讲解。笔记1,软件环境:VM:虚拟机—》Ubuntupc:真机—》windows命令:三要素:命令名称 [选项] [参数]注意:选项和参数是可以被省略的mkdir:创建新目录cd :切换目录cd ~:切换至主目录(家目录/工作目录)cd -:跳转至上一次刚工作
2021-02-25 20:24:05
201
2
原创 嵌入式学习DAY3 -- 分支语句(单分支:if语句;双分支if else语句;多分支:if else if语句,switch case语句)
嵌入式入门学习笔记,遇到的问题以及心得体会!DAY 2!笔记:复习:1.数据类型整形:int short long longlong浮点型:float double字符型:char构造数据类型空类型:void2.变量: 存储类型 数据类型 变量名3.运算符 算数 关系 逻辑 赋值 条件 sizeof 位:<< >> & | ~ ^4.进制转换 二进制 八进制 十进制 十六进制5.标准输入输出函数 scanf:赋值变量需要加&
2021-02-24 19:10:09
863
原创 嵌入式学习心得Day2 -- C语言基础(变量 运算符 进制 输入输出)
嵌入式入门学习笔记,遇到的问题以及心得体会!Day 2笔记:1.变量格式:存储类型 数据类型 变量名存储类型: auto:默认使用 extern:声明其他文件当中定义的变量 static:声明静态变量 register:声明寄存器变量数据类型: 基本长度:1byte 最小长度:1bit 抓换:1byte = 8bit 整形系列: int:4字节,32bit 2^32 -1 最高位(符号位):为0是正数;为一
2021-02-23 19:54:56
268
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人