绑定线程到核上,这样减少核间通信的开销,因为会有东西的移动。
sleep和usleep的区别换算
sleep的时间是秒,usleep的是毫秒。
1s=1000ms=1000,000us。
很多时候不需要你直接帮助别人解决问题,而是需要你陪着ta直面困难。
1、如何识别自己的串口,判断有多少个,用的是哪个
3、明确查看串口的名字
demsg |grep tty
2、串口编程
去掉了里边的那句话:
把三个文件合成了一个,同时从哪个举例来看,是需要输入三个参数的,第一个是启动的文件名称,第二个参数是使用的端口号。
第三个文件是要传输的数据。那么我们具体在做的时候应该直接把端口号写进去,然后就只需要传输数据就可以,如何可以循环接收数据呢?
//串口相关的头文件
#include<stdio.h> /*标准输入输出定义*/
#include<stdlib.h> /*标准函数库定义*/
#include<unistd.h> /*Unix 标准函数定义*/
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h> /*文件控制定义*/
#include<termios.h> /*PPSIX 终端控制定义*/
#include<errno.h> /*错误号定义*/
#include<string.h>
//宏定义
#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、主机和虚拟机之间通过端口通信
存在问题是一次只能发送一个字符,多了就蓝屏,有待寻找原因。
5、c++的编译用g++,同时多线程用-lpthread参数
解压文件
Ubuntu检测到错误消除
Linux交叉编译工具链的介绍和使用
-plthread的应用,c++编译使用 -lpthread
CMAKE 的使用,主要是添加链接的东西,gcc的版本,c和c++支持的版本,还有就是c和c++使用的编译工具
-plthread的应用,c++编译使用 -lpthread
gcc控制版本切换,安装的gcc会自动适配环境中的其他东西,而解压的gcc的基础库路径配置并不是和本地电脑保持一致,所以无法直接在原来的路径连接到本地的文件中
可视化通过页面安装eclipse软件,直接命令行下载压缩包,然后按照流程走就行,比下边哪个apt-get的好用
apt-get不能同时使用,同时使用安装两个终端的话会出现被占用的情况,此时需要kill掉apt-get相关的线程。
静态编译可以直接运行,动态编译涉及一些动态库的调用,所以需要把一些编译后调用的动态库全部拷贝到开发板的lib路径中,需要将程序的依赖库拷贝到开发板的/lib目录下
编译工具gcc,g++,arm-linux-gcc的编译结果差异以及运行环境
5、更新下载包的源头,通过一个软定向来制定一个defeat的源头,每次把不同的源头指向这个默认的源
最后成功是我重新编译了1.14版本的ceres-solver,然后成功了,同时尝试切换了gcc的版本和g++的版本。
11、gcc和g++版本切换,非常重要
13、add-apt-repository修改的文件,其实是添加了下载源
eclipse在线安装的方式并设置桌面快捷方式,选择C++版本
虚拟机重装vmtools从虚拟机装而不是命令行apt-get装
查看Linux中某个指令正在运行的线程 ps -e|grep apt,后边的就是我们想要的指令
两个共用了一个cmake的结果,可能有问题,因为cmake使用的是cmakelist中的路径,确定了交叉编译的版本,所以使用了那个makefile文件其实有些问题。其对应的是9.0的交叉编译器的版本,不是8.2的版本。
安装的交叉编译器和解压的交叉编译器有差异,根本问题是cmakelist文件没有写对,因为用哪个交叉编译器编译简单的东西就可以直接实现编译,可是写进去的和写在外边的有什么区别呢?明明都是这个东西为什么行为不一样呢?安装的和解压的有什么地方设置不一样呢。