自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【8.0】网络编程(TCP/UDP)

1

2020-01-06 20:25:07 124

原创 【3.0】freertos

一、内存分配方式FreeRTOS 提供了 5 种内存分配方法,FreeRTOS 使用者可以其中的某一个方法,或者自己的内存分配方法。这 5 种方法是 5 个文件,分别为:heap_1.c、heap_2.c、heap_3.c、heap_4.c 和heap_5.c。这 5 个文件再 FreeRTOS 源码中,路径:FreeRTOS->Source->portable->MemMa...

2019-10-28 19:48:35 177

原创 【10.0】linux驱动

自动创建/dev设备节点因为在linux里面有两种设备文件系统,devfs和sysfsdevfs1) 需要手动创建设备节点mknod fasync_dev c 250 02) 或者在fasync_dev_init函数中添加:#ifdef CONFIG_DEVFS_FS //支持devfs文件系统,在内核里面配置devfs_mk_cdev(设备号, S_IFCHR | S_IR...

2019-10-24 15:18:42 188

原创 【7.0】ARM单片机

嵌入式ARM处理器ARM 处理器传统的命名是 ARM + 数字的方式:ARM7(冯诺依曼结构)、ARM9-ARM11(开始使用哈佛结构),在 ARM11 以后,ARM 公司使用了新的命名方式:Cortex,对比传统的方式就应该是 ARM12。Cortex 架构目前分为 3 个系列,性能及复杂度由低到高分别是:M、R、A。Cortex-M 系列主要的目标是微控制器市场,就是传统的 MCU、单片机...

2019-10-24 10:45:43 476

原创 【4.0】通信协议,I2C,SPI,CAN,USB,DMA

一、UARTUART:通用异步串行口,速率不快,可全双工,结构上一般由波特率产生器、UART 发送器、UART 接收器组成,硬件上两线,一收一发;二、I2CI2C:双向、两线、串行、多主控接口标准。速率不快,半双工,同步接口,具有总线仲裁机制,非常适合器件间近距离经常性数据通信,可实现设备组网;总线仲裁:线与,谁发0就仲裁成功。2.1、起始信号和结束信号开始信号:SCL为高...

2019-10-22 17:13:14 1068

原创 【2.0】bootloader工作流程、MCU启动流程

一、Bootloader当系统首次引导时,或系统被重置时,处理器会执行一个位于 Flash/ROM 中的已知位置处的代码,Bootloader 就是这第一段代码。它主要用来初始化处理器及外设,建立内存空间的映射图,然后调用Linux 内核。Linux 内核在完成系统的初始化之后需要挂载某个文件系统作为根文件系统(RootFilesystem),然后加载必要的内核模块,启动应用程序。(一个嵌入式...

2019-10-22 15:51:53 5500 1

原创 【1.5】系统调用、内核调度

一、系统调用系统调用是用户进程与内核进行交互的一组接口,让应用程序受限地访问硬件设备。其主要作用有3个:为用户空间提供硬件的抽象接口。 保证了系统的稳定和安全。 是用户空间访问内核的唯一手段,除异常和陷入外。1、系统调用在内核空间的处理层次模型系统调用在核心空间中所要经历的层次模型。从图中看出:对于磁盘的一次读请求,首先经过虚拟文件系统层(vfs layer),其次是具体的文件系...

2019-10-09 20:02:45 356

原创 【1.4】中断

中断流程请求中断→响应中断→关闭中断→保留断点→中断源识别→保护现场→中断服务子程序→恢复现场→中断返回中断(interrupt)是异步的事件,典型的比如由I/O设备触发;异常(exception)是同步的事件,典型的比如处理器执行某条指令时发现出错了等等。都是CPU对系统发生某个事情做出的一种反应。中断由外因引起,异常由CPU本身原因引起。中断又可以分为可屏蔽中断和非可屏蔽中断,异...

2019-10-04 13:44:24 162

原创 【1.3 】内存空间分配,内存管理

一、内核空间和用户空间Linux的虚拟地址空间也为0~4G.。Linux内核将这4G字节的空间分为两部分。将最高的1G字节(从虚拟地址0xC0000000到0xFFFFFFFF),供内核使用,称为"内核空间"。而将较低的3G字节(从虚拟地址 0x00000000到0xBFFFFFFF),供各个进程使用,称为"用户空间")。因为每个进程可以通过系统调用进入内核,因此,Linux内核由系统内的所...

2019-10-02 00:57:01 356

原创 【1.2】同步的方法(内核同步,线程同步,进程通信)

一、内核同步主要是防止多核处理器同时访问修改某段代码,或者在对设备驱动程序进行临界区保护。主要有以下几种方式:1、原子操作:原子操作可以保证指令以原子的方式执行,执行过程不被打断。atomic_t u = ATOMIC_INIT(0);// 定义原子变量u并初始化0atomic_set(&u,4);atomic_add(2,&u);atomic_inc(&amp...

2019-09-29 23:02:41 489

原创 【1.1】进程与线程

一、进程 进程的定义:进程是资源(CPU、内存等)分配的基本单位。处于执行期的程序。包括可执行程序代码,打开的文件,挂起的信号,内和内部的数据,处理器状态,具有内存映射的内存地址及多个执行线程。进程就是正在执行程序的实时结果。由三部分组成:PCB(进程控制块)、程序段和相关数据段。 进程的状态:在linux内核中,通常调用fork()系统的结果,通过复制一个现有进程来创建一个全新的进程...

2019-09-28 23:50:18 117

空空如也

空空如也

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

TA关注的人

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