自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 嵌入式技术笔记(十九):网络通信基础知识

TCP

2021-04-26 14:54:19 426

原创 嵌入式技术笔记(十八):线程池

1. 多线程存在的问题1、进程所支持的线程数量问题(受限)2、线程的创建和销毁的开销问题2. 线程池的概念3. 创建线程池任务:#include <stdio.h>#include <stdlib.h>#include <string.h>#include <pthread.h>#include <unistd.h>struct job{ void *((*func)(void *arg)); void

2021-04-19 14:56:15 404

原创 嵌入式技术笔记(十七):线程同步

线程同步:互斥锁,线程信号量,条件变量1. 互斥锁1、定义互斥锁(变量) pthread_mutex_t mutex;2、初始化锁:预设互斥锁的初始值pthread_mutex_mutex = PTHREAD_MUTEX_INITIALIZER(不常用)int pthread_mutex_init(pthread_mutex_t *restrict mutex,const pthread mutexattr_t *restrict attr)功能:初始化定义的互斥锁(就是设置互斥锁)返回值:

2021-04-13 08:06:02 177

原创 嵌入式技术笔记(十六):消息队列和线程

1. 消息队列传送有格式的消息流多进程网状交叉通信,实现大规模数据通信使用内核中的链表(实现机制)posix的消息队列和系统V消息队列的区别1、一般来说posix的接口要比systemV的简单,但是systemV的可已移植性更好几乎所有的unix系统都支持。2、对posix消息队列的读总是返回最高优先级的最早消息,对systemV消息队列的读则可以返回任意指定优先级的消息。3、当往一个空队列放置一个消息时,posix消息队列允许产生一个信号或者启动一个线程,systemV消息队列则不提供类

2021-04-05 22:13:13 644

原创 嵌入式技术笔记(十五):信号、共享内存和创建共享内存

1. 信号——软中断(程序间传输信息的)Ctrl+c:停止信号(能够终止程序的原因:相当于强制执行kill 9。)Ctrl+z:暂停信号kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]jobspec:任务申明sigspec:信号申明sighandler_t signal(int signum, sighandler_t handler);int sig

2021-04-05 20:52:05 277 2

原创 嵌入式技术笔记(十四):进程间的通信

进程间的通信(一)进程间的通信(IPC)方式管道:有名管道和无名管道消息队列信号量共享内存套接字(二)进程间通信的目的1、数据传输:一个进程需要将它的数据发送给另一个进程,比如我再自己的一个网站的项目中,子进程进行程序替换,去执行爬取数据,然后将数据给父进程,然父进程进行展示。2、共享数据:多个进程想要操作共享数据,一个进程对共享数据的修改,别的进程应该第一时间看到3、通知事件:一个进程需要向另一个或另一组进程发送消息,通知它(们)发生了某种事件(如进程终止时通知父进程)4、资源共享.

2021-03-31 19:09:04 244

原创 嵌入式技术笔记(十三):多进程的优缺点、wait函数族和僵尸进程

1. 多进程的优缺点木马病毒:通过侵入用户的内核,获得对进程的调度权多进程的优缺点:优点:1、对用户来说,操作系统更加健壮(因为一个进程无法破坏另一个进程或操作系统的运行,进程之间相互独立)2、对开发者来说,更容易进行内存的读取和写入(因为进程有独立的内存)缺点:1、多任务实现开销大2、编写能够与其他进程通信或能够对其他进程操作的应用程序将要困难的多2. wait函数族wait函数:将当前进程挂起,等待信号来临,在继续运行;用来等待子进程的结束。pid_t wait(int *w

2021-03-29 17:41:03 188

原创 嵌入式技术笔记(十一):C的标准输入输出和相关函数

读字符的家族写字符的家族fputc:将某一字符写入文件流int fputc(int c, FILE *stream);int fputs(const char *s, FILE *stream);putc:宏int putc(int c, FILE *stream);putchar:int putchar(int c);int puts(const char *s);

2021-03-29 09:34:43 188

原创 嵌入式技术笔记(十二):进程控制

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

2021-03-28 23:15:43 193 1

原创 嵌入式技术笔记(十):文件编程和open系列函数

1. 文件编程Linux文件:文件本身包含的数据(打开文件可以看到的数据信息)文件属性(元数据:文件的访问权限,文件的大小,创建日期等)目录也是文件之一(当创建一个新的目录的时候,系统自动创建两个文件项). :当前目录… :上一级目录/根目录下的文件:bin:存放二进制文件,即可执行文件,还有一些常见命令dev:存放编译文件lib:存放库文件root:存放的是root自己的home目录sys:存放内核目录proc:保存页面信息var:保存日志文件,系统产生经常变化的文件etc

2021-03-25 21:10:09 338

原创 嵌入式技术笔记(九):循环语句和函数

1. 循环控制:for、while、until等结构1、for语句循环for <循环变量> [in <循环变量取值集>]do <命令清单>done如果for语句的后半部分被省略,则默认的<循环变量取值集>就是命令行参数集如果命令清单有多条命令,系统会依次执行2、while循环语句while<判别令>do<命令清单>done当<判别令>返回0时(对于test命令,就是其后的表达式成立),则执行d

2021-03-22 17:18:03 474

原创 嵌入式技术笔记(八):test命令、expr命令和条件语句

export用export可以把本地变量设置为环境变量格式:export 变量名也可以在给变量赋值的同时使用export命令格式:export 变量名=变量值(若等号两边有空格,则必须用引号括起来)hi

2021-03-19 17:47:43 486 2

原创 嵌入式技术笔记(七):命令解释器shell和三种变量

1. 关于描述符的定义标准输入的文件描述符为:0标准输出的文件描述符为:1标准错误输出文件描述符为:2重定向符号,如command > file:将命令在终端上输出的结果放到文件里输出2. 命令解释器shellshell就是一个命令解释器,它为用户提供了一个向Linux内核发送请求以便运行程序界面系统级程序。一个命令就是shell和内核交互的过程目前流行的几种shell:ash、bash、ksh、csh、zsh等;Linux下用的shell是bash,bash下有40多种

2021-03-17 17:47:14 240

原创 嵌入式技术笔记(六):makefile中的内置变量和企业级makefile的相关函数

makefile里的内置变量编辑makefile,代码如下:mg=add.o sub.o mul.o div.o main.o,内置变量为mg;在之后用到add.o sub.o mul.o div.o main.o时,可以用$(mg)mg=add.o sub.o mul.o div.o main.o cal:$(mg) @gcc add.o sub.o mul.o div.o main.o -o cal //也可以写成 //gcc $(mg) -o cal //makefile

2021-03-15 20:08:35 319

原创 嵌入式技术笔记(五):嵌入式Linux开发工具——调试器gdb和工程管理器make

1. 嵌入式Linux开发工具——调试器gdbgdb也是GNU计划(a\启动运行程序 b\设置断点 c\查看变量值)使用gdb之前:需要-g编译选项(gdb)run运行,(gdb)list回车显示每次断点的代码学习gdb命令:gdb 可执行文件 --tui运行命令:run(r); continue(c)设置断点:break 行号 或 break 函数名 或 break 行号 条件查看断点信息:info break删除断点:delete 断点号单步执

2021-03-12 17:43:38 177

原创 嵌入式技术笔记(四):库文件——静态库和动态库

库文件是什么?库文件:存放函数和变量的仓库;特点:只能使用库里的函数和变量,不能看到其实现。静态库和动态库是什么?静态库:.a文件;当使用静态库时,库里的函数和变量是在编译时加载到可执行文件。动态库:.so文件;当使用动态库时,库里的函数和变量是在运行时加载到可执行文件的。静态库和动态库的比较可执行文件...

2021-03-11 13:40:19 1191

原创 嵌入式技术笔记(三):编辑器vim和编译器gcc

今天主要学习了编译器vim和编译器gcc的相关知识。1. 编辑器:vim有三种模式:命令模式,底行模式,插入模式;默认是命令模式。命令模式->插入模式:按i或a插入模式->命令模式:按esc键插入模式->底行模式:按esc键命令模式->底行模式:按shift键和:退出编辑器:进入底行模式,输入“q!”,按回车退出编辑器中的一些命令:(1)在命令模式下:按“yy”复制整行语句;按“yy10”是复制整行语句10次;按“p”自动往下复制一行;“yy”和“p”是配套使用

2021-03-10 20:54:55 282

原创 嵌入式技术笔记(二):Linux命令

今天学习了一些Linux命令,在这里回顾总结一下。首先说一个注意点,命令后面要加空格,否则命令无效。1. 切换(进入)当前工作目录:cd语法:cd [dirName]其中dirName 表示法可为绝对路径或相对路径。cd / :进入根目录cd . :当前目录cd后面跟两个".":返回上一级2. 显示指定工作目录下之内容:ls语法:ls [-alrtAFR] [name…]ls -a:显示所有文件及目录 (. 开头的隐藏文件也会列出)ls -l:除文件名称外,亦将文件型态、权限、拥有者

2021-03-09 23:09:31 188

原创 嵌入式技术笔记(一):初识嵌入式技术

昨天是学习嵌入式技术的第一天,我第一次对它有了较为全面的了解。1. 首先是嵌入式技术需要学什么或者说掌握哪些能力?3种语言:C,C++,编译语言至少2种操作系统:Linux系统,Windows系统等3种开发能力:应用软件开发能力、系统软件开发能力、中间框架开发能力还要学习内核、底层驱动等2. 嵌入式技术是什么?嵌入式技术是在已有的硬件上移植操作系统。传统的单片机工作流程是将软件直接烧到硬件上,这样就会产生软硬件耦合度太高的问题,而且移植性差。为了解决这个问题,就需要在软件和硬件直接嵌入操作

2021-03-09 18:18:02 304 2

空空如也

空空如也

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

TA关注的人

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