- 博客(20)
- 收藏
- 关注
原创 课外扩展(十)
套接字套接字(socket)是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开、读写和关闭等操作。套接字允许应用程序将I/O插入到网络中,并与网络中的其他应用程序进行通信。网络套接字是IP地址与端口的组合。传输层实现端到端的通信,因此,每一个传输层连接有两个端点。那么,传输层连接的端点是什么呢?不是主机,不是主机的IP地址,不是应用进程,也不是传输层的协议端口。传输层...
2020-05-05 13:35:05 214
原创 嵌入式技术学习笔记(十)
网络基础因为进程间通信解决的是本机内的通信,而网络通信解决的是任意不同机器的通信,所以我们需要学习网络通信。要想实现网路通信需要什么?(1)通信设备:①网卡:pc机自带②路由器,交换机③光纤,电缆,基站(2)通信协议:操作系统自带协议栈(linux的特点就是有丰富的网路协议);裸机开发需要独立的协议栈(3)简单网络通信只需要学会使用系统APIOSI七层网络模型,Linux四层网络模型...
2020-04-28 16:42:59 214
原创 课外扩展(九)
线程简介线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。在Unix System V及SunOS中也被称为轻量进程(lightweight processes),但轻量进程更多指内核线程(kernel thread),而把用户线程(user thread)称为线...
2020-04-28 10:10:08 159
原创 嵌入式技术学习笔记(九)
信号信号是一种向进程发送通知,告诉其某件事情发生了的一种简单的通信机制信号的产生:①另一个进程发送信号②内核发送信号③底层硬件发送信号常用信号:SIGHUP 终止进程 终端线路挂断SIGINT 终止进程 中断进程SIGQUIT 建立CORE文件终止进程,并且生成core文件SIGILL 建立CORE文件 非法指令SIGTRAP ...
2020-04-24 19:05:36 119
原创 课外扩展(八)
我们知道在unix/linux中,正常情况下,子进程是通过父进程创建的,子进程在创建新的进程。子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预测子进程 到底什么时候结束。 当一个 进程完成它的工作终止之后,它的父进程需要调用wait()或者waitpid()系统调用取得子进程的终止状态。孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将...
2020-04-24 13:26:37 161
原创 嵌入式技术学习笔记(八)
进程间通信1、管道管道可以分为无名管道和有名管道无名管道只可用于父子进程之间通信有名管道可以用于系统中任意两个进程之间通信无名管道:int pipe(int pipefd【2】)fd【0】为读,fd【1】为写pipefd用于获取管道文件描述符有名管道:int mkfifo(const char *pathname,mode_t mode)...
2020-04-14 16:48:05 163
原创 课外扩展(七)
进程我们都知道计算机的核心是CPU,它承担了所有的计算任务,而操作系统是计算机的管理者,它负责任务的调度,资源的分配和管理,统领整个计算机硬件;应用程序是具有某种功能的程序,程序是运行于操作系统之上的。进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和调度的一个独立单位,是应用程序运行的载体。进程是一种抽象的概念,从来没有统一的标准定义。进程一般由程序...
2020-04-14 00:06:24 102
原创 嵌入式技术学习笔记(七)
fprintf函数(格式化输出数据至文件)表头文件:#include<stdio.h>定义函数:int fprintf(FILE * stream,constchar * format,…);函数说明:fprintf()会根据参数format字符串来转换并格式化数据,然后将结果输出到参数stream指定的文件中,直到出现字符串(’\0’)为止。返回值:成功则返回实际输出的字符数...
2020-04-07 16:36:50 143
原创 课外扩展(六)
函数介绍(1)ioctl函数ioctl是设备驱动程序中对设备的I/O通道进行管理的函数。所谓对I/O通道进行管理,就是对设备的一些特性进行控制,例如串口的传输波特率、马达的转速等等。它的调用个数如下:int ioctl(int fd, ind cmd, …);其中fd是用户程序打开设备时使用open函数返回的文件标示符,cmd是用户程序对设备的控制命令,至于后面的省略号,那是一些补充参数,...
2020-04-07 00:44:21 148
原创 嵌入式技术学习笔记(六)
嵌入式Linux系统开发学习嵌入式Linux系统开发实际上是学习用户编程接口API1、Linux系统开发是指通过内核提供的服务实现相应的功能Linux系统构成:用户空间,内核空间2、划分空间的目的分成两个空间是为了防止用户修改内核中的内容,使得原本应该实现的功能无法实现。为了保护内核中核心数据不发生变化,保护内核。用户空间不能随意访问内核空间3、用户如何访问内核空间系统调用:内核提...
2020-03-31 16:50:56 159
原创 课外扩展(五)
运行shell用户可以用任何编辑程序来编写shell程序,因为shell程序是解释执行的,所以不需要编译装配成目标程序。按照shell编程的惯例,以bash为例,程序的第一行一般为“#!/bin/bash”,其中#表示该行是注释,符号“!”告诉shell运行“!”之后的命令并用文件的其余部分作为输入,也就是运行/bin/bash并让/bin/bash去执行shell程序的内容。执行shell程...
2020-03-30 22:23:45 136
原创 嵌入式技术学习笔记(五)
嵌入式 Linux开发工具:shell编程(脚本编程,做批处理时使用)Linux系统运维工程师需要熟练掌握shell(嵌入式系统开发中的系统移植)shell:1、命令解析器,将用户输入的命令解析,调用相应的可执行文件2、脚本语言...
2020-03-30 13:37:47 199
原创 课外扩展(四)
Makefile基本内容谈到编译,对于新手的我们首先想到的肯定先想到gcc编译器。它的功能足够应付一般的小文件。但当我们一个软件里面的源文件达到成千上万时,gcc就显得力不从心了,这是必然需要一个新的编译工具站出来,给予我们方便,它就是工程管理器——make。首先我们建立一个工程的概念,一个工程下面有许多的子目录,子目录里面可以有许多目录或者源文件,这样一直嵌套下去,那么一个工程就会有许多的源文...
2020-03-23 22:52:14 117
原创 嵌入式技术学习笔记(四)
调试器:gdb1、gdb隶属于GNU计划。内核调试使用KGDB2、程序错误分为两大类:(1)编译时错误,实际上是语法错误(2)运行时错误,实际上是内存错误或者是逻辑错误。3、gdb功能:(1)运行程序(2)设置断点(3)查看变量的值4、如何使用gdb:gcc -g hello.c -o hello 然后使用gdb hello来使用gdb5、gdb具体命令简单介绍gdb --t...
2020-03-17 16:50:01 153
原创 课外扩展(三)
linux开发工具容器放眼于现实,现在已经是容器的时代了。容器既及其容易部署,又可以方便地构建开发环境。如果你针对的是特定的平台的开发,将开发流程所需要的各种工具都创建到容器映像中是一种很好的方法,只要使用这一个容器映像,就能够快速启动大量运行所需服务的实例。一个使用容器的最佳例子就是Docker,Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器...
2020-03-16 23:28:32 305
原创 嵌入式技术学习笔记(三)
Linux开发工具vim(文本编辑器):学会使用和如何配置vimgcc(编译器):学会制作动态库和静态库及使用和区别gdb(调试器):设置断点,单步执行,调试内存错误make(工程管理器):编写makefile文件vim使用vim是功能最强大的文本编辑器,其目的是为了脱离鼠标。vim所需的配置文件是由你自己一个个根据目的输入的,所设置的内容都是最满足你自己的要求的。因此很多人喜欢使用...
2020-03-10 23:06:43 189
原创 课外扩展(二)
unix系统简介Unix是20世纪70年代初出现的一个操作系统,除了作为网络操作系统之外,还可以作为单机操作系统使用。Unix作为一种开发平台和台式操作系统获得了广泛使用,目前主要用于工程应用和科学计算等领域。发展历史UNIX系统是一个分时系统。最早的UNIX系统于1970年问世。此前,只有面向批处理作业的操作系统,这样的系统对于需要立即得到响应的用户来说是太慢了。在60年代末,Kenne...
2020-03-09 21:45:03 345
原创 嵌入式技术学习笔记(二)
嵌入式系统开发概述补充嵌入式学习路线:(嵌入式操作系统、开发工具、系统应用开发(&GUI)、系统移植、驱动、内核)所具备的知识体系:c语言、单片机、嵌入式操作系统(汇编、c++)编程语言:C、C++、汇编、python操作系统:非实时性(Linux) 实时性(ucosii)硬件基础:51+stm32+arm64开发工具:git/github、makefile编写、gdb调试器、...
2020-03-03 17:32:08 323 1
原创 课外扩展(一)
认识嵌入式系统嵌入式系统简介嵌入式系统由硬件和软件组成.是能够独立进行运作的器件。其软件内容只包括软件运行环境及其操作系统。硬件内容包括信号处理器、存储器、通信模块等在内的多方面的内容。嵌入式系统是以应用为中心,以现代计算机技术为基础,能够根据用户需求(功能、可靠性、成本、体积、功耗、环境等)灵活裁剪软硬件模块的专用计算机系统。要点概括:以应用为中心:强调嵌入式系统的目标是满足用户的特定需...
2020-03-02 16:17:42 745
原创 嵌入式技术学习笔记(一)
一、嵌入式开发概述1、嵌入式技术是什么?要介绍嵌入式技术,首先要谈及单片机技术。单片机开发技术可以被称为传统开发,由自己编写的软件来控制硬件。这种传统开发方式存在缺点:①软件移植性差 因为硬件的原理不同,所以你所编写的软件可能只适用于一种硬件。②开发人员能力要求:软硬通吃 要想完成单片机开发,就必须对软件和硬件两种都要熟悉。而且自己设计出来的东西只能自己修改理解,别人很难帮忙。所以...
2020-02-25 20:52:00 521
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人