5.11专题

5.11 飞行控制——定点飞行

文章目录 5.11 飞行控制——定点飞行5.11.1 加入三轴位置的飞行硬件系统 FLY(s)5.11.2 数学模型——三轴位置系统(1)x、y轴位置系统的微分方程(2)z轴位置系统的微分方程(3)三轴位置系统的状态空间方程 5.11.2 A1软件设计5.11.3 A1运行与调试5.11.4 三轴位置串级PID控制器5.11.5 A2软件设计5.11.6 A2运行与调试5.11.7 期望误差

监控系统 day-47 (5.10 监控介绍, 5.11 安装zabbix4.0, 5.12 安装zabbix4.0-2, 5.13 监控客户机-添加主机 5.14 监控客户机-管理模板)

5.10 监控介绍 5.11 安装zabbix4.0 rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm create database zabbix character set utf8 collate utf8_bin; 定义配置文件

OK6410A 开发板 (六) 3 OK6410A linux-5.11 运行解析

url : git@github.com:lisider/linux.gitbranch : ok6410a-linux-5.11commit id : d64fe683e8d36e8fff882f1319de00f442fea1a8config : ok6410A_sdboot_mini_defconfig// 涉及的 .S .s .c 文件 有 824个 前提 uI

OK6410A 开发板 (八) 38 linux-5.11 OK6410A 为什么需要这么多内存管理器

最后 用 memblock 不行吗?跳过 memblock 直接设置 buddy 不行吗memblock 和 buddy 的区别为什么 是 buddy 是 内存管理器 以及 其他管理器的基础为什么 buddy 建立了还要 建立 slab 和 vmalloc ?这几个内存管理器的特点是什么??? 第三阶段的消费者 第三阶段建立的是 buddyalloc_pages 申请到的都是 物理内存 连

OK6410A 开发板 (八) 37 linux-5.11 OK6410A 内存管理第五阶段

vmallocvmalloc_initfor_each_possible_cpu(i) {// vfree_deferred 类型变量的 链表 和 工作任务 free_work// free_work用于vfree执行时延迟异步释放vmalloc内存struct vfree_deferred *p;...// vmap_block_queue 类型变量的链表和锁// vmap_block_que

OK6410A 开发板 (八) 36 linux-5.11 OK6410A 内存管理第四阶段

D mm_init->mem_init返回 -> mm_init->kmem_cache_init返回----此时slab建立,开启了基于 buddy内存管理器时代 的 slab内存管理器时代 kmem_cache_init此过程以 slab 为基础,通过slab 的api kmem_cache_create , 创建 很多个 slab假设这么多个slab 为 一个集合A这么多slab 就是

OK6410A 开发板 (八) 34 linux-5.11 OK6410A 内存管理第二阶段

B __turn_mmu_on符号 - setup_arch->paging_init->bootmem_init->memblock_allow_resize返回----此时memblock初始化完成,开启了基于虚拟内时代的 memblock内存管理器时代 流程 __turn_mmu_onmcr p15, 0, r0, c1, c0, 0 @ write control re

OK6410A 开发板 (八) 33 linux-5.11 OK6410A 内存管理第一阶段

A arch/arm/kernel/head.S 中的 stext符号 - __turn_mmu_on 符号----此时开了MMU,开启了虚拟内存时代 流程 mrc p15, 0, r9, c0, c0// 将 cpuid 存储到 r9__lookup_processor_type// 根据 r9 中的值 ,获取 procinfo 并存储到 r5movs r10, r5// 获取

OK6410A 开发板 (八) 32 linux-5.11 OK6410A 从内存角度简略分析整个启动过程

从 arch/arm/kernel/head.S 中的 stext 到 内核 rest_init 的 system_state = SYSTEM_SCHEDULING;分析 整个内存的启动过程至于 为什么不分析 arch/arm/boot/compressed/head.S 中的start 到 arch/arm/kernel/head.S 中的 stext因为 这个过程可以不跑的话, lin

OK6410A 开发板 (八) 31 linux-5.11 OK6410A 感知linux的内存管理

linux 内存管理 , 我们感知三类内存管理系统内存管理 A内核线程内存管理 A用户进程内存管理内核态 A用户态 B这几种应该分为两类 , A BA 类共用一个内存(虚拟和物理)B 类每个进程有一个内存(虚拟和物理)另外,我们知道在硬件上 内存是 物理内存但在 linux 里面, 内存 除了物理内存 还包括 swap空间代表的空间(这里是将硬盘当作内存) // 可以从

OK6410A 开发板 (八) 29 linux-5.11 OK6410A 主要内核线程解析

kthreadd这篇博客简述了 一下 系统内创建的 所有内核线程 // 进程 1 2 的 父进程为 0// 其他所有内核线程(被[]包括的) 父进程都是 kthreadd进程ID 所属用户 状态 COMMAND进程名 进程创建文件 进程创建函数// 1号用户进程1 root 1412 S {linuxrc} init //init/main.c kernel_t

OK6410A 开发板 (八) 28 linux-5.11 OK6410A 进程之间的区别

进程是什么单核系统上同一时间内,只有一个进程(进程A)在跑,该进程占用了1.cpu的所有寄存器资源2.cp15协处理器的所有寄存器资源其他的进程都在内存中,也就是说 进程 B /进程 C 等 其实就是内存中的一组数据那么这组数据是什么这组数据 应该是 TCBTCB 从上到下包括什么1.pt_regs (18*4 B) // 用于 系统调用2.栈 8KB - 18*4 - (si

OK6410A 开发板 (八) 28 linux-5.11 OK6410A 进程角度 fork的分析

fork 是 分叉的意思 , 一个进程分成两个进程之前实现了一个 多进程os,也必定实现了forkhttps://github.com/lisider/learn_os/tree/master/process看一下 fork 一个进程 XXX 的本质是什么1. 为 TCB 找一块空间2. 填充 sp 成员3. 在 sp 中压栈(压入入口地址,参数,cpsr)4. 将 TCB 插入 调度时 调

OK6410A 开发板 (八) 99 linux-5.11 OK6410A 文件访问实例mmap与read的比较

mmap 和 write 的实现 他们两个的实现,其实重点都在 linux 中,所以要比较 他们的区别,要注意 以下流程 在 linux 内核中的区别open - addr=mmap(...); - addr[0] - closeopen - read - close 相同点 要将 "磁盘上的文件内容" 搞到 "用户能访问到的内存" 里面,需要关注以下数据及过程,mmap和read都做了这

OK6410A 开发板 (八) 98 linux-5.11 OK6410A glibc提供的mmap与linux中的 sys_mmap的联动

按道理用户空间通过 mmap 提出了需求,用户提出的需求分类1.共享文件映射2.私有文件映射3.共享匿名映射4.私有匿名映射内核要满足需求,就要做事情对于 需求 1 2内核要做 A.虚拟地址的申请 B.物理地址的申请 C.映射关系的建立 D.磁盘文件内容加载到物理内存对于 需求 3 4内核要做 A.虚拟地址的申请 B.物理地址的申请 C.映射关系的建立内核实际上是按照两个步骤做的这些内容 (不管是

OK6410A 开发板 (八) 97 linux-5.11 OK6410A glibc提供的mmap的四种用途

glibc提供的mmap简介 mmap 声明 用户空间用的mmap函数,是glibc 提供的声明通过 man mmap 查找#include <sys/mman.h>void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset);我们可以直接用mmap函数,也可以用封装mmap的函数 mmap

OK6410A 开发板 (八) 96 linux-5.11 OK6410A文件的访问 open-mmap-close

用户空间用的mmap函数,是glibc 提供的声明通过 man mmap 查找#include <sys/mman.h>void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset);mmap 其中的一个用途(共享文件映射/私有文件映射) 是 访问文件 demo #include <sys/m

OK6410A 开发板 (八) 95 linux-5.11 OK6410A linux高速缓存

高速缓存是什么 存储器在访问(读写)速度上有 金字塔等级架构 高速缓存 其实就是缓存, 高速只是缓存的一个特性(高等级的内存相对于低等级的内存) 缓存 其实 就是 将 低等级存储中的数据 放置到 高等级存储中 可以这么说,高等级存储 就是 低层级存储的缓存 在这里,我们有时候将 缓存 看成一个动词(将 低等级存储中的数据 放置到 高等级存储中 这个动作),有时候也被看成一个名词(高等级存

OK6410A 开发板 (八) 94 linux-5.11 OK6410A 内存消费者角度 分析内存管理

内存管理单元面向消费者,做了以下事情1. 物理内存的申请2. 虚拟内存的申请3. 物理内存与虚拟内存的映射内存管理单元向 消费者提供了以下接口1. 内存申请2. 内存释放内存申请 获取的句柄 有几种1. 地址2. struct page // 内核空间消费者一个交单的内存使用案例是用户A直接在获取的地址上写数据用户A不用了就直接调用api free一个复杂的内存使用案例是用户A获取一个pa

OK6410A 开发板 (八) 93 linux-5.11 OK6410A 从0到APP启动的过程中的二进制文件解读

这里说的二进制文件说的是 代码二进制文件 , 不是 数据二进制文件代码二进制文件是有格式的,linker按照格式生成代码二进制文件,loader按照格式解析代码二进制文件在不同的系统上,二进制文件格式有不同的发展史// 括号中是目前2023-10-18 23:10:21比较流行的格式,分别被三家OS支持!// 三个OS支持三种不同的可执行二进制文件,而对这些格式的描述也来源于三家OS//

CM5(5.11.0)和CDH5(5.11.0)离线安装

CM5(5.11.0)和CDH5(5.11.0)离线安装 概述文件下载系统环境搭建日志查看Q&A参考 概述 CDH (Cloudera's Distribution, including Apache Hadoop),是Hadoop众多分支中的一种,由Cloudera维护,基于稳定版本的Apache Hadoop构建,并集成了很多补丁,可直接用于生产环境。 Cloudera Manage

5.11作业

1:有一个隧道,全长5公里,有2列火车,全长200米,                 火车A时速 100公里每小时                 火车B时速 50公里每小时                 现在要求模拟火车反复通过隧道的场景(不可能2列火车都在隧道内运行 pthread_mutex_t mutex1;pthread_mutex_t mutex2;void *trai

5.11学习记录

20长安杯部分 检材 1 的操作系统版本 CentOS Linux 7.6.1810 (Core) 检材 1 中,操作系统的内核版本是  3.10.0-957.el7.x86_64 检材 1 中磁盘包含一个 LVM 逻辑卷,该 LVM 开始的逻辑区块地址(LBA)是  2099200 物理卷(Physical Volume,PV):就是指硬盘分区,也可以是整个硬盘或已创建的

5.11 mybatis之returnInstanceForEmptyRow作用

文章目录 1. 当returnInstanceForEmptyRow=true时2 当returnInstanceForEmptyRow=false时 mybatis的settings配置中有个属性returnInstanceForEmptyRow,该属性新增于mybatis的3.4.2版本,低于此版本不可用。该属性的作用官方解释为:当返回行的所有列都是空时,MyBatis默认返回

centos 5.11 配置源(亲测能用)

centos 5 目前已经不维护了,所以很多源也都不支持了。我试过阿里、网易、中科大的源都不行。最终找到这个源可以用(截至2024年3月27)。 拷贝下面的源内容到 /etc/yum.repos.d/CentOS-Base.repo 文件里面 # CentOS-Base.repo## The mirror system uses the connecting IP address of th

Dev-Cpp 5.11 c++编译器下载

Dev-Cpp 5.11 c++编译器下载地址:   链接: https://pan.baidu.com/s/1jHMAf1k 密码: i6nw