自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(120)
  • 资源 (1)
  • 收藏
  • 关注

原创 rt_thread 学习

学习学习

2022-08-11 19:27:38 364 1

原创 嵌入式QTlinux 工程编译

./fsl-imx-wayland-glibc-x86_64-meta-toolchain-qt5-cortexa7hf-neon-toolchain-4.1.15-2.0.1.sh安装交叉工具然后source environment-setup-cortexa7hf-neon-poky-linux-gnueabi导出环境变量然后在QT工程文件夹里面执行/opt/fsl-imx-wayland/4.1.15-2.0.1/sysroots/x86_64-pokysdk-linux/usr/bin/

2021-11-29 21:49:41 566

原创 C++ 11学习

原始字符串字面量, 就不需要转义引脚. 原始字符串字面量以R"(开头, 以)" 结尾:string str = R"(Hello World!)";

2021-11-25 05:45:08 567

原创 多进程并发服务器

多进程并发服务器:1, socket() 创建监听套接字 lfd2, Bind() 绑定地址结构3, listen()4, while(1){cfd = accept() 接收客户端连接请求pid = fork()if(pid == 0){ close(lfd) 关闭用于建立连接的套接字 read(cfd) write(cfd)}else if(pid > 0){ close(cfd); //关闭用于客户端的套接字 cfd contiue;}}5,

2021-11-19 07:22:10 1767

原创 linux 杂散知识点

普通文件, 目录, 软链接, 这三个要占磁盘空间管道, 套接字, 字符设备, 块设备, 不占磁盘空间, 伪文件

2021-11-11 20:46:06 658

原创 exec族111

exec 函数可以执行指定的程序主要有6个函数,int execl(const char *path, const char *arg, …);int execlp(const char *file, const char *arg, …);int execle(const char *path, const char *arg,…, char * const envp[]);int execv(const char *path, char *const argv[]);int execvp(

2021-11-11 06:24:08 52

原创 linux一些API函数

open (文件路径, 标志, mode)返回值: 文件描述符, 如果是正数, 表示打开成功, 否则返回-1文件操作的主标志.O_RDONLY 以只读方式,O_RDWR 以可读可写方式O_WRONLY 以只写方式主表示是互斥的, 使用其中的一种不能再使用其另一种文件操作的副标志:O_APPEND 读写文件从文件尾部开始移动, 所写入的数据追加到文件尾巴O_TRUNC 若文件存在且以可写的方式打开时, 此标志会将文件长度清为0,而原来存在的文件的资料也会消失.O_CREA

2021-11-07 19:40:27 176

原创 linux makefile

makefile 两个函数wildcardpatsubsetsrc = $(wildcard *.c)找到当前目录下所有后缀为.c的文件,赋值给srcobj = $(patsubset %.c,%.o, $(src))把src 变量里所有后缀为.c的文件替换成.oclean:-rm -rf $(obj) a.outrm前面的-, 表示如果出错了还依然的执行, 比如, 待删除文件集合是5个, 已经手动删除了1个,就只剩下4个,然而删除命令里面还是5个的集合, 就会有删除不存在的文件的问题,

2021-11-07 18:03:01 120

原创 linux 制作静态/动态库

静态库制作将要制作库的源文件编译成可执行的.o文件gcc -c 只编译不链接-o 指定文件名称gcc -c xxx.c -o xxx.o然后制作静态库ar rcs libname.a xx0.o xx1.oar rcs 制作工具, 固定的静态库必须以lib开头.a结尾,然后静态库的使用gcc main.c ./lib/libname.o -o a.out -I ./inc注意-I 指定头文件路径, 头文件可以包含库函数中的所有函数名称,这样只需要在源文件里面包含头文件,这样就可以调用

2021-11-07 15:01:50 165

原创 ubuntu 搭建FTP服务

1, 安装FTP服务sudo apt-get install vsftpd2, 对配置文件进行配置sudo gedit /etc/vsftpd.conf找到下面两个行, 改成下面配置local_enable=YESwrite_enable=YES确保上面两行前面没有 #, 有的话就取消修改完成后进行保存3, 重启FTP服务sudo /etc/init.d/vsftpd restart4,在windows 下下载FTP客户端https://www.filezilla.cn/downlo

2021-11-06 10:25:47 388

原创 linux 搭建samba服务

一安装:sudo apt-get install samba二, 配置:1, 创建一个需要共享的目录, 并且修改权限mkdir /home/longjingcha/sharesuod chmod 777 /home/longjingcha/share/ -R2, 打开配置文件:sudo vim /etc/samba/smb.conf在末尾添加下面信息, 严重提醒, [xxxx] 必须要添加, 可千万别漏了[share]path=/home/longjingcha/shareavaila

2021-11-06 09:46:22 235

原创 ubuntu 安装之后的一些事情

在装完ubuntu之后,一般就是调节分辨率大小,接着就是创建root 用户,su passwd root这样, 就可以填写密码就可以创建root用户了还有就是需要设置ubuntu上网, 这样才能安装一些环境,可以这样配置:4.静态IP:配置文件:/etc/network/interfacesauto eth0iface eth0 inet static // 如果想要动态IP 把static改成dhcp即可address 192.168.0.101netmask 255.255.

2021-11-02 09:10:24 295

原创 C++ 谓词

返回bool类型的仿函数称为谓词如果operator() 接受一个参数, 那么叫做一元谓词如果operator() 接受的两个参数, 那么叫做二元谓词.

2021-06-30 07:02:12 125

原创 C++函数对象

函数对象概念重载和拿书调用操作符的类, 该对象称为函数对象函数对象使用重载的()时, 行为类似函数调用, 也叫仿函数函数对象(其实就是仿函数)是一个类, 不是一个函数函数对象的使用函数对象在使用时, 可以像普通函数那样调用,可以有参数, 可以有返回值函数对象超出普通函数的概念, 函数对象可以有自己的状态函数对象可以作为参数传递class MYprint{ public: MYprint() { this->count = 0; } void operator()(

2021-06-30 06:53:02 59

原创 map/multimap 容器

map 概念map 中所有元素都是pairpair中第一个元素为key(键值), 起到索引作用, 第二元素为value(实值)所有元素都会根据元素的键值自动排序map/multimap 属于关联式容器, 低层结构是用二叉树实现优点: 可以根据key值快速找到value值map和multimap区别map 不允许容器中有重复key值元素multimap 允许容器中有重复key值元素构造map<T1, T2>mp; // map默认构造函数map(const map &am

2021-06-25 07:44:59 99

原创 C++ pair对组

成对出现的数据,利用数组可以返回两个数据pair<type, type> p(value1, value2);pair<type, type> p = make_pair(value1, value2);pair<string, int>p("tom", 20);p.first 访问到的是 第一个元素p.second 访问到的是 第二个元素...

2021-06-25 06:39:06 492

原创 i.MX8平台使用笔记

本人此博客甚至是作为使用过程中的记录, 没有参考意义,请各位不用给出意见.使用的是 NXP MIMX8QX6_M4 平台里面有双核芯片, 其中有A35和 M4两个内核,它们公用资源,需要对资源进行分配才能使用,分配的文件路径在 c_bootloader\scfw_export_mx8qx_b0\platform\board\mx8qx_mek\board.c文件, BRD_ERR(rm_set_pad_movable(pt_boot, SC_P_ADC_IN4,

2021-06-24 19:18:05 423

原创 C++ set/multiset 容器

set/multiset容器 属于关联式容器, 底层结构是用二叉树实现set/multiset 区别set 不允许容器中有重复的元素multiset 允许容器中有重复的元素两个都包含在include <set> 头文件中set 构造和赋值创建set容器以及赋值set<T> st; // 默认构造函数set(const set &st); // 拷贝构造函数赋值操作:set &operator=(const set &st); //

2021-06-23 22:20:44 182 1

原创 C++ list 容器

链表容器:优点: 可以对任意位置进行快速插入或删除元素缺点: 容器遍历速度, 没有数组快, 占用空间比数组大\双向链表: 由于链表的存储方式并不是连续的内存空间, 因此链表list中的迭代器只支持迁移和后移, 属于双向迭代器list 构造函数list<T> lst; // list 采用模板实现对象的默认构造形式list(beg, end); // 构造函数将[beg, end] 区间中的元素拷贝给本身list(n, elem); // 构造函数将n个elem拷贝给本身li

2021-06-22 07:40:49 136

原创 C++ queue 容器

queue 容器 先进先出一些api 函数接口入队 push出队 pop返回队头元素 front返回队尾元素 back判断队是否为空 empty返回队列大小 -size

2021-06-22 06:26:46 123

原创 C++ stack 容器

栈容器 先进后出不能编译栈容器其他API接口入栈-- push出栈 --pop返回栈顶 -- top判断栈是否为空 -- empty返回栈大小-- size

2021-06-22 06:08:24 175

原创 C++ deque容器

deque : 双端数组, 可以对头端进行插入删除操作deque与vector 区别vector 对于头部的插入删除来说, 效率低, 数据量越大, 效率越慢deque 相对而言, 头部的插入和删除比vector 速度快vector 访问元素时, 的速度比deque块, 这和两者内部实现有关deque 内部工作原理deque内部有一个存储空间, 叫中控器, 维护每段缓冲区中的内容, 缓冲区存放真实数据中控器维护的是每个缓冲区的地址, 使得使用deque时像一片连续的内存空间deque构造函数

2021-06-18 07:07:46 140

原创 C++ vector 容器

vector 数据结构类似于数组, 也称为单端数组vector与普通数组区别, 不同之处在于数组空间是静态的, 而vector 可以动态扩展动态扩展:本质不是在后面接续一块空间, 而是找更大的内存空间, 让后将元数据拷贝到新的空间, 释放旧空间函数原型vector<T> v; // 采用模板实现类实现, 默认构造函数vector(v.begin(), v.end()) // 将v[begin(), end()] 区间中的元素拷贝给本身vector(n, elem); // 构

2021-06-17 06:29:16 174

原创 c++ string 操作

string& assign ( const string& str );string& assign ( const string& str, size_t pos, size_t n );string& assign ( const char* s, size_t n );string& assign ( const char* s );string& assign ( size_t n, char c );basic_string &a

2021-06-16 05:48:41 695

原创 QT 环境安装后配置环境变量

2021-06-15 20:38:58 3044

原创 解决ubuntu 显示不出共享文件夹问题

本人使用的是ubuntu 18.04版本虚拟机但是在与windows 下共享的文件夹看不到, /mnt/hgfs/ 文件夹里面是空的经过查找别人的博客,发现只要执行sudo vmhgfs-fuse .host:/ /mnt/hgfs/ -o allow_other -o uid=1000即可成功...

2021-06-15 20:17:21 714 1

原创 C++ STL

C++ 的面向对象和泛型编程思想, 目的就是复用性的提升STL 标准模板库STL 从广义上分为, 容器(container) 算法(algorithm) 迭代器(iterator)容器和算法之间通过迭代器进行无缝连接stl 几乎所有的代码采用了模板或模板函数STL六大组件STL 大体分为六大组件, 分别是: 容器, 算法, 迭代器, 仿函数, 适配器(配接器), 空间配置器1, 容器: 各种数据结构, 如vector, list, deque, set, map 等用来存放数据2, 算法:

2021-06-15 07:25:37 111 1

原创 C++ 提高编程

C++ 提高编程 针对的是泛型编程和STL技术做详细讲解,探讨C++更深层的使用模板的概念模板就是建立通用的模板,大大提高复用性.模板的目的, 为了提高复用性, 将类型参数化函数模板template // 声明一个模板, 告诉编译器后面代码中紧跟着的T不要报错, T是一个通用数据类型void test_func(T &a, T &b)1, 自动类型推导test_func(a, b), 编译器自动推导T的类型2, 显示器指定类型test_func(a, b)...

2021-06-11 08:20:04 133

原创 linux 搭建ftp 服务器

安装sudo apt-get purge vsftpd 卸载应用sudo apt-get installl vsftpd 重新安装sudo mkdir /home/uftp 创建用户目录sudo useradd -d /home/uftp -s /bin/bash/ utfp 创建用户修改路径权限sudo chmod 777 /home/uftp也可以使用adduser 进行创建用户sudo passwd uftp 修改密码修改配置文件:sudo gedit /etc

2021-05-29 10:53:23 87

原创 linux 一些环境的搭建

在utuntu 中安装ssh server命令:sudo apt-get install openssh-serveropenssh-server is already the newest version (1:7.2p2-4ubuntu2.10).0 upgraded, 0 newly installed, 0 to remove and 21 not upgraded.弹出报错信息

2021-05-13 07:17:52 60

原创 linux makefile基础知识

makefile 基础格式目标:依赖(一个tab缩进)命令两个函数src = $(widcard ./*.c): 匹配当前工作目录下所有.c文件.obj = $(patsubst %.c, %.o, ($src))clean:(没有依赖)-rm -rf$(obj) a.out “-” 的作用是删除不存在的文件时, 不会报错, 顺序执行结束掉自动变量:$@: 在规则的命令中, 表示规则中的目标$^: 在规则的命令中,表示所有依赖条件$<: 表示第一个依赖条件,

2021-05-11 22:44:16 48

原创 linux 静态库与动态库的制作

静态库静态库命名规范,惊天库名字以lib开头,以.a为后缀静态库生成指令ar rcs libmylib.a file.o …制作步骤(1) 写好源码(2) 只编译不生成.o文件 gcc -c dev.c -o dev.o(3) 制作静态库 ar rcs libname.a dev.o(4) 制作静态库函数的头文件静态库的使用需要指定静态库的路径 以及使用-I 指定头文件路径. 进行编译链接(1) gcc test.c ./lib/libmylib.a -o test.o -I

2021-05-11 22:25:24 68

原创 linux 静态与动态库的制作

静态库编写静态库文件命令格式 以lib 开头.a为后缀 libname.a第一步: 编写好源码, 以及调用该源码函数的头文件第二步: 编译源代码生成.o文件gcc -c test.c -o test.o第三步: 制作静态库 使用arar rcs libname.a test.o …第四步: 静态库使用 gcc test.c ./libname.a -o test.out -I ./-I 的作用是指定头文件路径动态库命名规范, lib开头 .so结尾, 中间是库的名字动态库制作第一步:

2021-05-11 22:23:49 71

原创 隐式声明

当编译器进行编译的时候, 需要查找函数定义, 以及函数声明,当如果函数的定义和函数的声明的时候, 编译器会自动生成隐式声明,.隐式声明 默认返回值为int 类型,函数参数, 会根据你的传参进行 定义,如果函数原型, 和隐式声明 , 不符合, 那么就会失败....

2021-04-25 22:02:25 1089

原创 CAN 总线同步跳转宽度

本文参考自 http://www.pfautoecu.com/news/html/?143.html 文章, 在此进行声明和感谢.1, 同步跳转宽度, (SJW)要求 SJW为PES1(PBS1)和PES2(PBS2)调整的最大 长度SJW必须小于PES1和PES2的最小值SJW可以通过编程从1到Min(Phase_Seg1,4)取值。...

2021-04-24 06:49:35 1898

原创 linux 的软件安装与卸载

linux 一般情况会使用apt-get install xxx 进行软件安装apt-get remove xxx 进行软件卸载sudo dpkg -i xxx.deb deb 包的安装sudo dpkp -r xxx.deb 删除软件包命令

2021-04-22 07:50:21 61

原创 NXP 下载SDK的方法

首先打开这个网页https://mcuxpresso.nxp.com/en/select然后在左侧 点击Select a Board/ Processor然后选择板子Boards 选择哪款芯片的一个板子, 的SDK点击便以可选择下载的内容了

2021-04-21 11:44:00 2535

原创 C++ const 和constexpr

const 回顾一下内容cosnt int *p = &a;const 修饰的是 *p 所以, 表示指针的地址是可以改变的, 但是指针里面的内容是不能发生改变的, 指针可以指向任何地址, 一旦指向的地址, 该地址的内容就不能发生改变int * const p = &a; const 修饰的是p 所以指向的地址不能发生改变, 但是地址里面的内容是可以发生改变const 发生的阶段是在程序运行阶段constexpr 发生的阶段时编译阶段, 这样可以大大提升代码效率...

2021-04-19 22:45:03 76

原创 linux 系统编程学习

终端: 所有输入输出的总称。shell : 命令解析器, 根据输入的命令执行相应的命令cat /etc/shells 查看当前系统下有哪些shellecho $shell 查看当前系统正在使用的shell

2021-04-15 07:32:57 90

原创 FreeRTOS CPU使用率统计

想要使用CPU 利用率统计的话, 需要在FreeRTOSConfig.h 配置于系统运行时间和任务状态收集有关的配置选项.并且实现portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() 和 portGET_RUN_TIME_COUNTER_VALUE() 这两个宏定义.调用 vTaskGetRunTimeStats() 和 vTaskList() 函数获得任务的相关信息与CPU使用率的相关信息....

2021-04-14 22:44:03 483

LCP1768 wm8978播放WAV

LPC1768单片机 通过I2S方式给WM8978 传输音频数据, WM8978播放wav

2019-02-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除