- 博客(35)
- 收藏
- 关注
原创 freertos——任务管理
一、freeRtos任务管理二、前置知识2.1 任务的状态2.2 任务调度中的各种时间2.3 抢占 非抢占 进程饥饿现象2.4 时间片 系统时钟节拍2.5 任务调度器三、常见的任务调度算法。
2023-12-14 20:15:29 465
原创 vscode调试C++程序
项目路径中不要包含中文,否则会出现** “unexpected GDB output from command” **报错。
2023-12-11 10:37:59 507
原创 【】正点原子I.MX6ULL开发板通过nfs挂载文件系统出错
2.正点原子官方推荐的是ubuntu14的虚拟机,若ubuntu系统版本较高,可能是ubuntu支持的nfs版本过高导致无法挂载文件系统。1.setenv bootargs的设置是否出错?比如:ip和目录之间用英文冒号分隔,
2023-06-15 10:31:17 363
原创 开发板ping ubuntu主机
一开始就理解错了,错误的以为wifi网卡就是pc的局域网地址,pc无法作为路由器,应该设置usb网口的地址,使其和开发板在同一局域网下。
2023-06-14 11:03:19 253 2
原创 【算法】回溯算法
本质是一个递归过程,一种暴力搜索方法。能够解决的问题: 为方便理解和使用回溯方法,使用图形记忆和使用。抽象为一个树形结构(n叉树)。宽度:for循环,深度:递归。
2023-04-21 21:46:30 46
原创 【apollo之porotocol buffer】
配置文件作为序列化和反序列化的一个应用广泛存在于apollo项目中,因此,掌握pb协议的使用后续对源码实现功能拓展。效率高:采用L(length)-V(value)-T(Tage),方式编码,不需要", {, }, :等分隔符来结构化信息,因此序列化之后的体积小,同时序列化速度和反序列化速度比XML和Json块。apollo中主要是将protobuf用于CyberRT的不同主机间通信时的序列化和反序列化,以及用为模块配置文件。的字节数据,反序列化就是把存储过来的或网络传输过来的数据解析为进程中对象。
2023-04-14 08:59:48 342
原创 【cpp】构造函数
构造函数主要分为三类:默认构造函数(无参构造函数)、有参构造函数、拷贝构造函数(包括了拷贝赋值运算符,移动构造函数,移动赋值运算符)
2023-04-13 20:17:21 901
原创 【apollo】凸优化
三个要素:可行解集合(约束),定义最优的含义,如何寻找最优的。等式约束能够转化为两个不等式约束。因此约束只考虑不等式约束最优解未必只有一个,最优解组成的集合称为“最优解集”
2023-04-12 21:21:20 562
原创 【Apollo】自动驾驶模型
Frenet坐标系,能够将纵向控制和横向控制解耦(横纵向控制用这种坐标系)。其他两个坐标系无法实现解耦控制(MPC中就用这种坐标系)。
2023-04-12 21:10:47 281
原创 【apollo之Git】
【精】通俗原理腾讯/Git内部类型【精】git出的介绍原理的书【精】git add + git commit + 分支创建 的原理1原理2$ sudo apt - get install git ///验证 $ git。
2023-04-01 22:21:49 300
原创 【Docker】Apollo CyberRT 运行 ./bazel-bin/cyber/examples/talker 缺少 libgflags2.2 动态库
在Container中安装对应的动态库。Container中缺少相应的动态库。
2023-03-17 16:27:32 449
原创 leetcode技巧——位运算
学习目标:1. 异或:学习内容:提示:这里可以添加要学的内容例如:1、 搭建 Java 开发环境2、 掌握 Java 基本语法3、 掌握条件语句4、 掌握循环语句学习时间:提示:这里可以添加计划学习的时间例如:1、 周一至周五晚上 7 点—晚上9点2、 周六上午 9 点-上午 11 点3、 周日下午 3 点-下午 6 点学习产出:提示:这里统计学习计划的总量例如:1、 技术笔记 2 遍2、CSDN 技术博客 3 篇3、 学习的 vlog 视频 1 个...
2021-09-27 10:05:04 84
原创 STL——queue容器
1. 简介:队列。2.基本操作:queue的基本操作有:1.入队:如q.push(x):将x元素接到队列的末端;2.出队:如q.pop() 弹出队列的第一个元素,并不会返回元素的值;3.访问队首元素:如q.front()4.访问队尾元素,如q.back();5.访问队中的元素个数,如q.size();6.empty() 如果 queue 中没有元素的话,返回 true。...
2021-09-14 14:53:39 111
原创 STL——stack容器相关操作
1.stack容器:1.1 stack容器介绍:C++ Stack(堆栈) 是一个容器类的改编,为程序员提供了堆栈的全部功能,——也就是说实现了一个先进后出(FILO)的数据结构。1.2 stack容器相关操作函数:stack<T> stkT;//stack采用模板类实现, stack对象的默认构造形式: empty();//判断堆栈是否为空size();//返回堆栈的大小push(elem);//向栈顶添加元素pop();//从栈顶移除第一个元素top();//返回栈顶元素
2021-09-02 13:07:01 114
原创 链表中的一些技巧
1.查找链表的等分结点:1.1描述:给定一个链表查找中间结点、第一个三等分点。。。。1.2方法:法一:先遍历一遍链表,使用变量i记录结点个数m,再遍历链表,每遍历一个结点,则i++,直到i==m/n;法二:使用快慢指针,慢指针走一步,则快指针走2步或3步。。。,直到快指针不满足循环体的循环条件(循环条件很重要,并且还要分偶数链表还是奇数链表)1.3代码实现:仅针对法二,查找中间结点ListNode* first_half_end(ListNode* head){ ListNo
2021-08-30 11:39:25 120
原创 C++ STL vector相关操作函数
emplace_back()功能:该函数是 C++ 11 新增加的,其功能和 push_back() 相同,都是在 vector 容器的尾部添加一个元素。应用场景:1.将用链表存储的线性表转化为用数组存储的线性表。leetcode.234 回文链表 法一...
2021-08-26 19:22:03 128
原创 递归——leetcode 21.合并两个有序链表
什么是递归函数在运行时调用自己,这个函数就叫递归函数,调用的过程叫做递归.递归的两个要点递归函数必须要有终止条件,否则会出错;递归函数先不断调用自身,直到遇到终止条件后进行回溯,最终返回答案。关键词:终止条件;回溯...
2021-08-25 08:52:35 109
原创 使用函数模板完成选择排序算法
算法实现:使用函数模板完成选择排序算法:#include <iostream>using namespace std;class Solution {public: template <class T> void seletion_sort(T (&arr)[9], T n) { //i永远指向剩余序列第一个元素的下标,j用于遍历剩余序列来查找出最小值,k用于记录剩余序列最小值的下标 for (i = 0; i < n; i++) { te
2021-08-03 11:10:54 238
原创 C++类模板成员函数创建时机
类模板成员函数创建时机:今天学习模板时看到一句话**“类模板中的成员函数并不是一开始就创建的,在调用时才去创建”。因为这个原因,类模板不能像以往的分文件编写。我不是很理解“创建”**是什么意思。经过查找资料和思考后,我的想法如下:1.编译器使用模板,通过更换模板参数来创建数据类型,这个过程就是 模板实例化2.从模板类创建得到的类型称之为 特例3.模板能否实例化创建特例,不仅仅需要模板的声明,而且还需要模板的定义,以及是否有模板的参数列表,三者缺一不可。因为只有在调用之时才有模板参数列表,所以模板
2021-07-29 16:49:39 840 1
原创 为什么需要多态
为什么需要多态:因为存在赋值兼容规则(向上类型转换原则),父类指针既能指向父类对象又能指向子类对象。我们在开发时,希望:如果父类指针指向父类对象时,则调用父类中定义的函数;如果父类指针指向父类对象时,则调用父类中定义的函数。但是,但是,但是:因为编译器的静态联编,编译器自动根据指针的类型判断指向的是一个什么类型的对象,如果指针是父类类型,则编译器认为指针指向的对象一定是父类,编译器编译的结果为:调用父类中定义的函数。这与我们开发的需求不相符。为解决此问题,引入了多态。...
2021-07-27 17:05:39 282
转载 socket可读可写条件
”可读事件"表示有数据到来,"可写事件"表示内核缓冲区有剩余发送空间,“错误事件“表示socket发生了一些网络错误。原文地址:http://blog.csdn.net/majianfei1023/article/details/45788591
2021-07-15 09:03:30 153
原创 C与C++中const关键字总结
1.C++不一定为const分配内存,除非使用extern或取地址。不分配地址的话,存放在符号表中。使用extern或取地址的话存放在.rodata2.C一定会为const分配内存:全局const分配在.rodata段(只读数据段),局部const分配在栈中。3.可通过指针修改局部const,不能通过指针修改全局const,因为.rodata段保护。那么在c++中:为什么p输出200?而m_B输出20呢?p既然存放m_B的地址,那么p不就是改变m_B的值么?原因:...
2021-07-13 17:00:23 40
原创 网络编程之select()总结
前言:Day05和Day06移植程序之后,老师布置了另一个任务:使用select和epoll多路IO复用写一个服务器。学习内容:自己写一遍程序加深了对多路IO复用中哥哥函数的理解,尤其是理解了四种网络IO模型。当有很多客户端来连接服务器时(高并发),仅仅使用阻塞IO,每次只能检测一个客户端是否连接,而使用多路IO复用(select/epoll)就可以一次监测多个客户端是否发起连接。使用select模型时,为提高效率,需要将cfd放入自己创建的数组中,然后遍历数组找出发生了读写事件的cfd(避免
2021-06-30 16:39:34 101
原创 使用tftp向开发板传输文件
前言昨天天(Day03),终于通过OTG烧录的方式将LInux系统移植到开发板了。接下来就是将在PC端linux系统中编写的hello_world程序传输到开发板上,然后在开发板上运行该程序。问题描述:本来打算用串口将程序传输到开发板上,但是公司没有DB9母头接口,全都是公头(开发板上的串口采用DB9公头接口),串口传输方案卒。导师说:用tftp传输吧!解决方案:Day04上午首先了解什么是tftp协议(我那时的想法:怎么这么多协议,又是tftp、又是ssh、http),什么是端口号(终于弄
2021-06-25 11:57:04 3468 2
原创 全志OKA40i-C开发板 Buildroot编译错误处理 fakeroot: preload library `libfakeroot.so‘ not found, aborting.
项目场景:实习Day02实习时,导师安排的任务:将linux移植到开发板上。问题描述:编译时,linux kernel编译和buildroot编译先后出错。内核编译出错没有记录,buildroot出错见照片。解决过程和方案:出现问题,不好意思直接问导师(不然显得自己没水平),先上csdn看看,csdn给出的几种回答:1)make clean + make2)sudo apt-get install fakeroot3)sudo apt-get install cramfsprogs验
2021-06-24 13:46:31 1787 4
原创 实习Day01
学习目标:提示:这里可以添加学习目标例如:一周掌握 Java 入门知识学习内容:提示:这里可以添加要学的内容例如:1、 搭建 Java 开发环境2、 掌握 Java 基本语法3、 掌握条件语句4、 掌握循环语句学习时间:提示:这里可以添加计划学习的时间例如:1、 周一至周五晚上 7 点—晚上9点2、 周六上午 9 点-上午 11 点3、 周日下午 3 点-下午 6 点学习产出:提示:这里统计学习计划的总量例如:1、 技术笔记 2 遍2、CSDN 技术博客 3 篇
2021-06-23 09:35:31 112
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人