09 2020 档案
摘要:找了好久这一篇算是很容易看懂的了 推荐给大家 写的十分清楚 原文作者DF创客社区virtualwiz LZ以前有个小小的理想,就是让手边的MCU自己“思考”起来,写出真正带算法的程序。前段时间做一个比赛项目的过程中,对经典、实用的PID算法有了一点点自己的理解,就写了这些,与大家分享因为LZ想尽办法
阅读全文
摘要:内存四区模型 32位CPU可寻址4G线性空间,每个进程都有各自独立的4G逻辑地址,其中0~3G是用户态空间,3~4G是内核空间,不同进程相同的逻辑地址会映射到不同的物理地址中。其逻辑地址其划分如下: 各个段说明如下:3G用户空间和1G内核空间 静态区域: text segment(代码段):包括只读
阅读全文
摘要:我有一个梦想,希望每一位提到算法的人,不再立即紧皱眉头 PID算法;Fuzzy模糊控制;Optimal优化控制;Robust控制;神经网络控制。2.非线性控制,自适应控制,模型预测控制,数字控制,智能控制(神经网络,贝叶斯模型,模糊算法,机器学习,进化,遗传等等)。这些分类之间都有交集
阅读全文
摘要:参考: PID控制器开发笔 浅谈位置式PID 专家PID控制在快速系统中的仿真及应用(这篇了论文介绍的积分分离PID、专家PID(脚本实现和simulink实现)很详细) PID控制算法的C语言实现一 PID算法原理 在工业应用中PID及其衍生算法是应用最广泛的算法之一,是当之无愧的万能算法,如果能
阅读全文
摘要:深入理解FIFO(包含有FIFO深度的解释) FIFO: 一、先入先出队列(First Input First Output,FIFO)这是一种传统的按序执行方法,先进入的指令先完成并引退,跟着才执行第二条指令。 1.什么是FIFO? FIFO是英文First In First Out 的缩写,是一
阅读全文
摘要:什么是宿主机? 就是主机,这个概念是相对于子机而言的,比如你安装有虚拟机的话,那么相对于虚拟机而言,你正在使用的计算机就是宿主机,虚拟机是安装在主机上的,必须在主机上才能运行,主机就是一个“宿主”。
阅读全文
摘要:当父类指针指向父类的对象时,没有疑问,编译器对func函数的判断过程就是1、func是不是虚函数不是就调用成员函数2、func是虚函数则根据父类的虚函数Vptr指针,查找到func再使用当父类指针指向子类的对象时,func的判断过程1、func是不是父类继承过来的成员变量(未虚化)2、不是的话、fu
阅读全文
摘要:表示作用域,和所属关系 比如 class A { public: int test(); } int A::test()//表示test是属于A的 { return 0; } 类似的还有其他,就不列举了 比如 int a; void test () { int a = ::a;//用全局变量a,给本
阅读全文
摘要:malloc malloc函数在运行时分配内存。它需要以字节为单位的大小并在内存中分配那么多空间。这意味着malloc(50)将在内存中分配50个字节。它返回一个void指针 calloc 与malloc一样,calloc也在运行时分配内存,并在stdlib.h中定义。它需要元素的数量和每个元素的大
阅读全文
摘要:一、由源码到可执行程序的过程 1. 预处理: 源码经过预处理器的预处理变成预处理过的.i中间文件 1 gcc -E test.c -o test.i 2. 编译: 中间文件经过编译器编译形成.s的汇编文件 1 gcc -S test.i -o test.s 3. 汇编: 汇编文件经过汇编器生成目标文
阅读全文
摘要:动态库与静态库 静态(函数)库 一般扩展名为(.a或.lib),这类的函数库通常扩展名为libxxx.a或xxx.lib 。这类库在编译的时候会直接整合到目标程序中,所以利用静态函数库编译成的文件会比较大,这类函数库最大的优点就是编译成功的可执行文件可以独立运行,而不再需要向外部要求读取函数库的内容
阅读全文
摘要:C/C++学习总结积累(超详细)——C提高:预处理(include、define、可变宏参)、编译、汇编、链接 gcc/g++ 实战之编译的四个过程 预处理 1)预处理的基本概念 C语言对源程序处理的四个步骤:预处理、编译、汇编、链接。 预处理是在程序源代码被编译之前,由预处理器(Preproces
阅读全文
摘要:链表是一种常用的数据结构,它通过指针将一些列数据结点,连接成一个数据链。相对于数组,链表具有更好的动态性(非顺序存储)。 数据域用来存储数据,指针域用于建立与下一个结点的联系。 建立链表时无需预先知道数据总量的,可以随机的分配空间,可以高效的在链表中的任意位置实时插入或删除数据。 链表的开销,主要是
阅读全文
摘要:文件操作步骤 要把大象装进冰箱总共分几步? 一、对文件的操作步骤 1)引入头文件(stdio.h ) 2)定义文件指针 3)打开文件 4)文件读写 5)关闭文件 二、有关文件的概念 按文件的逻辑结构: 记录文件:由具有一定结构的记录组成(定长和不定长) 流式文件:由一个个字符(字节)数据顺序组成 按
阅读全文
摘要:C语言程序处理过程 预处理:宏定义展开、头文件展开、条件编译,这里并不会检查语法 编译:检查语法,将预处理后文件编译生成汇编文件 汇编:将汇编文件生成目标文件(二进制文件) 链接:将目标文件链接为可执行程序 程序只有在运行才加载到内存(由系统完成),但是某个变量具体分配多大,是在编译阶段就已经确定了
阅读全文
摘要:参考:https://www.cnblogs.com/edisonchou/p/4669098.html 一个由C/C++编译的程序占用的内存分为以下几个部分: 1、栈区(stack):又编译器自动分配释放,存放函数的参数值,局部变量的值等,其操作方式类似于数据结构的栈。 2、堆区(heap):一般
阅读全文