- 博客(18)
- 收藏
- 关注
原创 Linux文件目录
1.1 arch/arm/boot目录中,包含了编译好的ZImage、Image等内核的镜像文件。1.2 arch/arm/boot/dts目录中,含有板载信息的设备树二进制文件xxxx.dtb。3最后,将相关的ZImage和xxx.dtb文件通过nfs下载到ARM设备上。1.3 arch/arm/configs目录条件编译的选项,1 .交叉编译过程中配置及生成的相关文件目录。2.配置vscode工程,排除不相关文件。
2024-01-23 15:56:55
380
1
原创 uboot笔记
uboot的目录结构1.1 api关于与硬件 不相关的api函数1.2 arch文件中包含了与架构相关代码,主要看/arm文件夹下1.3 board文件夹主要与板卡信息相关,找到该文件夹下对应板卡的文件如/board/freescale/mx6ullevk/文件夹下的xxx.c文件1.4 configs文件夹包含了配置信息,最终的uboot.bin文件会通过如下方式得到1.5 include/configs/xx.h文件和xxx.c文件,对uboot进行配置,主要初始化串口、mmc,ddr及
2024-01-22 16:01:24
377
原创 Linux内核通过uboot自动加载
其中mmc中的文件如何下载,可通过FAT格式的指令,如。Uboot启动后加载kernel及rootfs。零EXT格式文件及其他类型类比查询。1.1 通过网络的方式加载。1.2 从mmc中下载。
2024-01-21 22:34:39
442
1
原创 opencv人脸识别
在这里插入代码片#include<opencv2/highgui/highgui.hpp>#include <opencv2/imgproc/imgproc_c.h>#include <opencv2/imgproc.hpp>#include <opencv2/core/core.hpp>#include <opencv2/objdetect/objdetect.hpp>#include <iostream>using
2021-06-30 16:48:18
264
3
原创 基于Qt的简易局域网聊天工具mychar
该实例乃是《Qt及Qt quick开发实战精解》第五章案例:主要基于UDP与TCP实现消息传递和文件传输,其具体主窗口函数和布局如下在这里插入代码片//widget.h#ifndef WIDGET_H#define WIDGET_H#include <QWidget>#include<QUdpSocket>class TcpServer;//表示消息,新用户加入,用户退出,文件名,拒绝文件enum MessageType{ Message , NewPartici
2021-06-19 20:46:41
887
3
原创 c++中int和string转化
一、int转换成stringstring to_string(int val);string to_string (long val);string to_string (long long val);string to_string (unsigned val);string to_string (unsigned long val);string to_string (unsigned long long val);string to_string (float val);string
2021-06-18 20:45:49
364
原创 atoi()和stoi()函数的用法和区别
相同点:都是c++的字符处理函数,把数字字符串转换成int输出。不同点:atoi()的参数是 const char* ,因此对于一个字符串str我们必须调用 c_str()的方法把这个string转换成 const char类型的,而stoi()的参数是const string,不需要转化为 const char*在这里插入代码片cout<< atoi(str.c_str()<<endl;stoi()会做范围检查,默认范围是在int的范围内的,如果超出范围的话则会runti
2021-06-07 17:06:36
510
原创 linux内核下半部:软中断、tasklet、工作队列
#软中断、tasklet和工作队列是linux中存在的关于中断下半部的机制,更早之前的内核中的“小半部”(bottom half)演变而来(1)、 中断上半部和小半部的区别上半部是指中断处理程序,其对于时间敏感,如键盘事件需要能立即响应,应用中断实现。下半部是指一些虽然与中断相关但是可以延后处理的程序。如网络传输中,网卡收到数据包事件不一定需要马上被处理。两者区别:中断不能被相同类型的中断打断,而下半部依然可以被中断打断;中断对于时间非常敏感,而下半部基本上都是一些可以延迟的工作。由于二者的这种区别,
2021-06-02 11:20:48
295
原创 priority_queue用法记录
#优先对列优先队列具有队列的所有特性,包括队列的基本操作`#top 访问队头元素#empty 对列是否为空#size 返回对列内元素个数#push 插入元素到队尾#pop 弹出队头元素#swap 交换内容#emplace 原地构造一个元素并插入对列中#include<queue>//升序对列priority_queue<int,vector<int>,greater<int>> q;//降序对列 默认为降序对类可食用p
2021-05-24 19:05:22
98
原创 linux中线程的4中锁机制
1.互斥锁:mutex,用于保证在任何时刻,都只能有一个线程访问该对象。当 获取锁擦操作失败时,线程会进入睡眠,等待锁释放时被唤醒。在这里插入代码片pthread_mutex_t Device_mutex ;int count=0;void thread_func1(){ while(1) { pthread_mutex_lock(&Device_mutex); printf("thread1: %dn",count); pthread_mutex_unlock(&
2021-05-20 16:42:35
246
1
原创 进程间通信之管道
#匿名管道匿名管道作为进程间通信的方式之一,有大小受限(一般65536)、半双工和在有亲缘关系的进程中使用的特点。使用int pipe(int fds[2])函数创建,fds[0]代表读; fds[1] 代表写 ; 函数成功返回0在这里插入代码片#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>//父子进程间通信int main(void)
2021-05-20 15:06:00
135
原创 基于Arduino的智能垃圾桶
#斜体样式智能垃圾桶概述:现实生活中家庭中都会有一个小型的垃圾桶或者纸篓,但是在使用的过程中都会遇见以下情况,当需要扔一张废纸时需要跑到垃圾桶所在位置,回来时却打断了思路和灵感…#方案实现:以Arduino版为控制中心的主控单元,添加以下模块:1、无线遥控功能,在垃圾桶主体设置一个信号接收模块,以及外置遥控器,当其发送控制指令时,接收模块接受指令,并将信号转化为电信号发送给主控Arduino,再由主控单元处理并发出指令,驱动发动机转动和控制轮子以改变方向。2、自动避障功能,设置一个避障模块和电机驱
2021-05-17 15:01:17
3297
4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人