绑定线程到核上,这样减少核间通信的开销,因为会有东西的移动。
sleep和usleep的区别换算
sleep的时间是秒,usleep的是毫秒。
1s=1000ms=1000,000us。
很多时候不需要你直接帮助别人解决问题,而是需要你陪着ta直面困难。
串口测试是否通的方式
1、如何识别自己的串口,判断有多少个,用的是哪个
3、明确查看串口的名字
demsg |grep tty
2、串口编程
去掉了里边的那句话:
把三个文件合成了一个,同时从哪个举例来看,是需要输入三个参数的,第一个是启动的文件名称,第二个参数是使用的端口号。
第三个文件是要传输的数据。那么我们具体在做的时候应该直接把端口号写进去,然后就只需要传输数据就可以,如何可以循环接收数据呢?
//串口相关的头文件
#include /*标准输入输出定义*/
#include /*标准函数库定义*/
#include /*Unix 标准函数定义*/
#include
#include
#include /*文件控制定义*/
#include /*PPSIX 终端控制定义*/
#include /*错误号定义*/
#include
//宏定义
#define FALSE -1
#define TRUE 0
extern int UART0_Open(int argc,char**argv);
//这具话去掉了才成功的,为什么要去掉呢。
extern void UART0_Close(int fd) ;
extern int UART0_Set(int fd,int speed,int flow_ctrl,int databits,int stopbits,int parity);
extern int UART0_Init(int fd, int speed,int flow_ctrl,int databits,int stopbits,int parity) ;
extern int UART0_Recv(int fd, char *rcv_buf,int data_len);
extern int UART0_Send(int fd, char *send_buf,int data_len);
3、主机和虚拟机之间通过端口通信
存在问题是一次只能发送一个字符,多了就蓝屏,有待寻找原因。
4、vector 做函数的参数
5、c++的编译用g++,同时多线程用-lpthread参数
6、多线程的使用
7、多线程发送加锁
多线程加锁
主机和虚拟机共享文件的位置
虚拟机中opencv等各种软件版本的查询
sudo apt install 安装的文件位置
解压文件
Ubuntu检测到错误消除
Linux交叉编译工具链的介绍和使用
-plthread的应用,c++编译使用 -lpthread
交叉编译工具版本查询和路径设置
各种编译器不同版本的区分,abi和abihf的比较
交叉编译下载工具链接
解压文件
CMAKE 的使用,主要是添加链接的东西,gcc的版本,c和c++支持的版本,还有就是c和c++使用的编译工具
Ubuntu检测到错误消除
Linux交叉编译工具链的介绍和使用
-plthread的应用,c++编译使用 -lpthread
交叉编译工具查询是是否安装和版本查询和路径设置
各种交叉编译工具的区别:ramv7 and armv8,
CMAKE的link相关的几种操作
gcc控制版本切换,安装的gcc会自动适配环境中的其他东西,而解压的gcc的基础库路径配置并不是和本地电脑保持一致,所以无法直接在原来的路径连接到本地的文件中
交叉编译工具
Ubuntu无法复制粘贴的问题解决
首次进入获得root权限设置
可视化通过页面安装eclipse软件,直接命令行下载压缩包,然后按照流程走就行,比下边哪个apt-get的好用
eclipse安装c++环境,其中有一写问题
针对上边的问题进行解决,安装 jre
Ubuntu中的eclpse中没有C++工程的解决办法
eclipse中新建C++工程
apt-get不能同时使用,同时使用安装两个终端的话会出现被占用的情况,此时需要kill掉apt-get相关的线程。
静态编译可以直接运行,动态编译涉及一些动态库的调用,所以需要把一些编译后调用的动态库全部拷贝到开发板的lib路径中,需要将程序的依赖库拷贝到开发板的/lib目录下
linux 中的which查询目标
linux中创建ecilpse交叉编译工程
在线安装交叉编译工具gcc和g++
编译工具gcc,g++,arm-linux-gcc的编译结果差异以及运行环境
安装指定版本的CMAKE工具,x
如何确定gcc是否支持c++11,c++17等文件
0、命令行启动colmap分析colmap代码
1、虚拟机中Ubuntu的删除
2、配置中文语言输入法
谷歌输入法的处理要切换源
3、ceres-solver镜像安装
4、原来默认的引用源头
切换源
5、更新下载包的源头,通过一个软定向来制定一个defeat的源头,每次把不同的源头指向这个默认的源
6、远程操作Ubuntu系统,不过有点卡,不太好用
7、可视化更换源
7、docker测试hello-word是否安装成功
8、docker安装教程
9、安装nvdiv显卡驱动,根据系统推荐安装
10、利用国内的镜像下载github的软件包
最后成功是我重新编译了1.14版本的ceres-solver,然后成功了,同时尝试切换了gcc的版本和g++的版本。
11、gcc和g++版本切换,非常重要
12、Ubuntu如何安装百度云
13、add-apt-repository修改的文件,其实是添加了下载源
14、VSCODE在linux下安装
eclipse在线安装的方式并设置桌面快捷方式,选择C++版本
虚拟机重装vmtools从虚拟机装而不是命令行apt-get装
查看Linux中某个指令正在运行的线程 ps -e|grep apt,后边的就是我们想要的指令
两个共用了一个cmake的结果,可能有问题,因为cmake使用的是cmakelist中的路径,确定了交叉编译的版本,所以使用了那个makefile文件其实有些问题。其对应的是9.0的交叉编译器的版本,不是8.2的版本。
安装的交叉编译器和解压的交叉编译器有差异,根本问题是cmakelist文件没有写对,因为用哪个交叉编译器编译简单的东西就可以直接实现编译,可是写进去的和写在外边的有什么区别呢?明明都是这个东西为什么行为不一样呢?安装的和解压的有什么地方设置不一样呢。
交叉编译器不同版本库文件不同的影响,拷贝进去重新建立链接
动态运行库.so 的冲突和解决
交叉编译器的版本问题.so文件