摘要: GPU 与 CPU CPU:擅长流程控制和逻辑处理,不规则数据结构,不可预测存储结构,单线程程序,分支密集型算法 GPU:擅长数据并行计算,规则数据结构,可预测存储模式 异构编程 现在的计算机体系架构中,要完成CUDA并行计算,单靠GPU一人之力是不能完成计算任务的,必须借助CPU来协同配合完成一次 阅读全文
posted @ 2019-06-10 23:01 youngliu91 阅读(788) 评论(0) 推荐(0) 编辑
摘要: Win10系统使用一段时间后用户都会定期进行删除清理系统垃圾,减少系统盘的容量占用,但在删除的过程中许多用户都遇到无法删除的情况,这一次系统提示“文件不存在”,这该怎么解决?我们可以利用批处理删除文件。 新建一个bat文件: 然后将文件夹拖动到该bat文件上,即可删除文件夹。 阅读全文
posted @ 2019-05-25 19:02 youngliu91 阅读(1164) 评论(0) 推荐(0) 编辑
摘要: 关闭VS的SDL检查 工程 属性= C/C++ = General= SDL checks 改为 No(/sdl). 阅读全文
posted @ 2019-05-25 10:46 youngliu91 阅读(780) 评论(0) 推荐(0) 编辑
摘要: 在for(){}循环中如果有处理函数,然后需要显示的时候,简单的UpdateData(false);是不行的: for (int i=0;i 阅读全文
posted @ 2019-05-24 00:08 youngliu91 阅读(1164) 评论(0) 推荐(0) 编辑
摘要: 调用 FindFirstFile 和 FindNextFile 可搜索某个目录下的相应文件。 阅读全文
posted @ 2019-05-19 12:19 youngliu91 阅读(3565) 评论(0) 推荐(0) 编辑
摘要: 在编写复杂程序的过程中,我们经常需要将一些信息输出到文件或者屏幕上。较控制台应用程序,MFC窗体程序要显得麻烦一些! 需要包含的头文件 使用 开启 关闭 阅读全文
posted @ 2019-05-19 11:58 youngliu91 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 设置板卡和虚拟机的网络参数 文件系统制作 osdrv/pub/bin/pc/mkyaffs2image100,文件系统制作的工具 osdrv/pub/rootfs_glibc,要制作的系统源文件 osdrv/pub/rootfs_glibc_2k_4bit.yaffs2 要生成的文件系统以及路径 u 阅读全文
posted @ 2019-05-18 22:41 youngliu91 阅读(1542) 评论(0) 推荐(0) 编辑
摘要: 如何查看和修改寄存器 himm address [value] 功能:把 address 对应的地址改写为 value。 如果没有输入 value,himm 会把 address 对应的值打印出来,然后提示输入新的值。 himd address [length] 从 address 开始,以大端方式 阅读全文
posted @ 2019-05-15 15:30 youngliu91 阅读(1307) 评论(0) 推荐(0) 编辑
摘要: ffprobe 简介 ffprobe 是一个多媒体流分析工具。它从多媒体流中收集信息,并且以人类和机器可读的形式打印出来。 它可以用来检测多媒体流的容器类型,以及每一个多媒体流的格式和类型。它可以作为一个独立的应用来使用,也可以结合文本过滤器执行更复杂的处理。 "英文手册" 参数 命令形式: 举例: 阅读全文
posted @ 2019-05-06 15:09 youngliu91 阅读(658) 评论(0) 推荐(0) 编辑
摘要: ffplay 简介 ffplay是ffmpeg工程中提供的播放器,功能相当的强大,凡是ffmpeg支持的视音频格式它基本上都支持。甚至连VLC不支持的一些流媒体都可以播放,但是它的缺点是其不是图形化界面的,必须通过键盘来操作。 简单测试: "英文参考手册" 快捷键 播放视音频文件的时候,可以通过下列 阅读全文
posted @ 2019-05-06 14:33 youngliu91 阅读(998) 评论(0) 推荐(0) 编辑
摘要: ffmpeg 简介 ffmpeg 用于转码的应用程序,命令格式: 简单示例: "英文手册" 参数 查看详细的参数选项可以使用: 常用的参数选项 简单的应用 复杂应用 码率控制 什么是码率?很简单: bitrate = file size / duration 比如一个文件20.8M,时长1分钟,那么 阅读全文
posted @ 2019-05-06 11:56 youngliu91 阅读(1147) 评论(0) 推荐(0) 编辑
摘要: FFmpeg 简介 FFmpeg的名称来自MPEG视频编码标准,前面的“FF”代表“Fast Forward”,FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。可以轻易地实现多种视频格式之间的相互转换。 "官网" "FFmpeg Club" "GitHub" 应 阅读全文
posted @ 2019-05-06 11:15 youngliu91 阅读(2009) 评论(0) 推荐(0) 编辑
摘要: 消息队列 消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。 每个数据块都被认为含有一个类型,接收进程可以独立地接收含有不同类型的数据结构。我们可以通过发送消息来避免命名管道的同步和阻塞问题。但是消息队列与命名管道一样,每个数据块都有一个最大长度的限制。 Linux用宏 和`MSGMNB 阅读全文
posted @ 2019-04-30 22:05 youngliu91 阅读(563) 评论(0) 推荐(0) 编辑
摘要: 文件描述符 fd 概念:文件描述符在形式上是一个非负整数。实际上,它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表。当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。在程序设计中,一些涉及底层的程序编写往往会围绕着文件描述符展开。 习惯上,标准输入(stan 阅读全文
posted @ 2019-04-30 10:44 youngliu91 阅读(519) 评论(0) 推荐(0) 编辑
摘要: open 函数 函数原型 函数说明: 用来打开一个已经存在的文件或者创建一个普通文件 参数解释: pathname:要打开或创建的目标文件 flags:打开文件时,可以传入多个参数选项,用下面的一个或多个进行“或”运算,构成flags 错误代码 返回值 成功返回文件描述符,失败返回 1。 open 阅读全文
posted @ 2019-04-30 10:26 youngliu91 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 函数原型 参数解释 fds:指向一个结构体数组的第0个元素的指针,每个数组元素都是一个struct pollfd结构,用于指定测试某个给定的fd的条件 nfds:表示fds结构体数组的长度 timeout:表示poll函数的超时时间,单位是毫秒 函数功能 监视并等待多个文件描述符的属性变化 函数返回 阅读全文
posted @ 2019-04-30 09:47 youngliu91 阅读(536) 评论(0) 推荐(0) 编辑
摘要: 安装 配置 打开tftpd hpa修改里面的配置: 创建tftp目录 测试 在当前命令目录下新建test.txt 需要文件真实存在,否则报Error code 1: File not found 卸载 清理残留数据 tftp服务器重启 或 阅读全文
posted @ 2019-04-28 16:40 youngliu91 阅读(469) 评论(0) 推荐(0) 编辑
摘要: C 语言经常在实际的调试过程中,使用最基本的调试方法printf,我们可以使用 ,增加自己的输出宏定义: 测试代码: 测试结果: 阅读全文
posted @ 2019-04-26 10:25 youngliu91 阅读(862) 评论(0) 推荐(0) 编辑
摘要: 递归简介 递归是一种解决问题的方法,将问题分解为更小的子问题,直到得到一个足够小的问题可以被很简单的解决,通常递归涉及函数调用自身。 递归三定律 1. 递归算法必须具有基本情况。 2. 递归算法必须改变其状态并向基本情况靠近。 3. 递归算法必须以递归方式调用自身。 举例 递归实现Fibonacci 阅读全文
posted @ 2019-04-09 11:23 youngliu91 阅读(243) 评论(0) 推荐(0) 编辑
摘要: | 排序算法 | 最好时间复杂度|平均时间复杂度 |最坏时间复杂度|空间复杂度|是否稳定| | : : | : : | : : | : : | : : | : : | | 冒泡排序 |$O(n)$|$O({n^2})$|$O({n^2})$| $O(1)$ |是 | | 选择排序 |$O({n^2} 阅读全文
posted @ 2019-04-09 10:49 youngliu91 阅读(415) 评论(0) 推荐(0) 编辑
摘要: 定义 二分查找又称折半查找,它是一种效率较高的查找方法。 二分查找要求:线性表是 有序表 ,即表中结点按关键字有序,并且要用向量作为表的存储结构,不妨设有序表是递增有序的。 算法思想 设 是当前的查找区间 1. 首先确定该区间的中点位置; 2. 然后将待查的K值与R[mid].key比较:若相等,则 阅读全文
posted @ 2019-04-09 10:34 youngliu91 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 算法思想 1. 先取一个正整数d1 &array) { int len = array.size(); int i, j, gap; // gap为步长,每次减为原来的一半。 for (gap = len / 2; gap 0; gap /= 2) { // 共gap个组,对每一组都执行直接插入排序 阅读全文
posted @ 2019-04-09 09:51 youngliu91 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 算法思想 1. 从数列中挑出一个元素,称为"基准"(pivot), 2. 重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区结束之后,该基准就处于数列的中间位置。这个称为分区(partition)操作。 3. 递归地(recurs 阅读全文
posted @ 2019-04-08 21:28 youngliu91 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 算法思想 1. 分解 :将当前区间一分为二; 2. 求解: 递归地对两个子区间进行归并排序,递归的终结条件是子区间长度为1。 3. 合并:将已排序的两个子区间归并为一个有序的区间。 分裂: 合并: 动画演示: 实现 C++ python def mergeSort(alist): 列表元素个数小于等 阅读全文
posted @ 2019-04-08 21:05 youngliu91 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 算法思想 1. 从第一个元素开始,该元素可以认为已经被排序 2. 取出下一个元素,在已经排序的元素序列中从后向前扫描 3. 如果该元素(已排序)大于新元素,将该元素移到下一位置 4. 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置 5. 将新元素插入到该位置后 6. 重复步骤2~5 动画演 阅读全文
posted @ 2019-04-08 20:51 youngliu91 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 算法思想 1. 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。 2. 然后,再从剩余未排序元素中继续寻找最小(大)元素,放到已排序序列的末尾。 3. 依此进行,直到所有元素均排序完毕。 动画演示: 实现 C++ void selectSort(vector &array) { in 阅读全文
posted @ 2019-04-08 20:23 youngliu91 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 算法思想 1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。 3. 针对所有的元素重复以上的步骤,除了最后一个。 4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比 阅读全文
posted @ 2019-04-08 19:31 youngliu91 阅读(198) 评论(0) 推荐(0) 编辑
摘要: i2c_smbus系列函数有: 1. i2c_smbus_read_byte()、i2c_smbus_write_byte() 这两个函数是没有太大意义的,如果是read,则连读的基地址都没有,如果是write,则是简单将value发送过去了,设备或许都不知道这是发送写的基地址还是写的数据,这两个函 阅读全文
posted @ 2019-03-28 15:12 youngliu91 阅读(2492) 评论(1) 推荐(0) 编辑
摘要: 配置 需要的文件下载 安装CMake,安装opencv3.0.0 在KCFcpp-master 目录下新建一个文件夹,命名为build 打开CMake-GUI配置如下: 点击Configure,编译器选择默认的就可以。 我的VS2013选择如下: 会发现找不到opencv的错误: 在此加入openc 阅读全文
posted @ 2019-03-24 19:53 youngliu91 阅读(544) 评论(0) 推荐(1) 编辑
摘要: 作用: 需要打印代码执行到某处的时间,或者需要计算程序执行的时间差(精确到微妙级)。这时会用到gettimeofday函数,它可以返回自1970 01 01 00:00:00到现在经历的秒数。 原型: 所需头文件: 参数说明: struct timeval: 其中time_t和suseconds_t 阅读全文
posted @ 2019-03-24 11:42 youngliu91 阅读(1066) 评论(0) 推荐(0) 编辑
摘要: 函数 sigwait sigwait的含义就如同它的字面意思:等待某个信号的到来。如果调用该函数的线程没有等到它想等待的信号那么该线程就休眠。要达到等到一个信号,我们得做下面的事: 首先,定义一个信号集: 其次,向信号集中加入我们想等待的信号: 最后,将该信号集中的信号加入到线程信号屏蔽字(线程信号 阅读全文
posted @ 2019-03-24 11:39 youngliu91 阅读(1112) 评论(0) 推荐(0) 编辑
摘要: 有很多时候,我们希望可以在C++类里面对那些比较耗时的函数使用多线程技术,但是,C++类的成员函数的函数指针不能直接做为参数传到pthread_create,主要因为是C++成员函数指针带有类命名空间,同时成员函数末尾是会被C++编译器加上可以接收对象地址的this指针参数。因此需要将成员函数做一定 阅读全文
posted @ 2019-03-24 11:33 youngliu91 阅读(3297) 评论(0) 推荐(0) 编辑
摘要: Linux内核的三种调度策略 SCHED_OTHER 分时调度策略。 它是默认的线程分时调度策略,所有的线程的优先级别都是0,线程的调度是通过分时来完成的。简单地说,如果系统使用这种调度策略,程序将无法设置线程的优先级。请注意,这种调度策略也是抢占式的,当高优先级的线程准备运行的时候,当前线程将被抢 阅读全文
posted @ 2019-03-24 11:31 youngliu91 阅读(799) 评论(0) 推荐(0) 编辑
摘要: 在任何一个时间点上,线程是可结合的(joinable),或者是分离的(detached)。一个可结合的线程能够被其他线程收回其资源和杀死;在被其他线程回收之前,它的存储器资源(如栈)是不释放的。相反,一个分离的线程是不能被其他线程回收或杀死的,它的存储器资源在它终止时由系统自动释放。 默认情况下,线 阅读全文
posted @ 2019-03-24 11:28 youngliu91 阅读(993) 评论(0) 推荐(0) 编辑
摘要: 基本概念 cpu亲和性(affinity) CPU的亲和性, 就是进程要在指定的 CPU 上尽量长时间地运行而不被迁移到其他处理器,也称为CPU关联性;再简单的点的描述就将指定的进程或线程绑定到相应的cpu上;在多核运行的机器上,每个CPU本身自己会有缓存,缓存着进程使用的信息,而进程可能会被OS调 阅读全文
posted @ 2019-03-24 11:26 youngliu91 阅读(2589) 评论(0) 推荐(0) 编辑
摘要: 准输入输出 在 Linux 系统中: 标准输入(stdin)默认为键盘输入; 标准输出(stdout)默认为屏幕输出; 标准错误输出(stderr)默认也是输出到屏幕(上面的 std 表示 standard)。 在 BASH 中使用这些概念时一般将标准输出表示为 1,将标准错误输出表示为 2。 输入 阅读全文
posted @ 2019-03-24 11:21 youngliu91 阅读(554) 评论(0) 推荐(0) 编辑
摘要: lspci 是一个用来显示系统中所有PCI总线设备或连接到该总线上的所有设备的工具。 列出所有的PCIE设备: 选项: 使得 lspci 以冗余模式显示所有设备的详细信息。 使得 lspci 以过冗余模式显示更详细的信息 (事实上是 PCI 设备能给出的所有东西)。 以数字形式显示 PCI 生产厂商 阅读全文
posted @ 2019-03-24 11:17 youngliu91 阅读(578) 评论(0) 推荐(0) 编辑
摘要: ``` include include include include include include define MSG(args...) printf(args) //函数声明 static int gpio_export(int pin); static int gpio_unexport( 阅读全文
posted @ 2019-03-24 11:17 youngliu91 阅读(1519) 评论(0) 推荐(0) 编辑
摘要: 大小端模式介绍 大端(存储)模式:是指一个数据的低位字节序的内容放在高地址处,高位字节序存的内容放在低地址处。 小端(存储)模式:是指一个数据的低位字节序内容存放在低地址处,高位字节序的内容存放在高地址处。(可以总结为“小小小”即低位、低地址、小端) MSB:MoST Significant Bit 阅读全文
posted @ 2019-03-24 11:16 youngliu91 阅读(1145) 评论(0) 推荐(0) 编辑
摘要: unsigned int(uint32_t)大小端转换函数 float大小端转换函数 由于Float类型的数据在计算中保存方法不一样, 所以对Float类型的数据做大小端转换的情况不能简单的通过宏移位来完成。 unsigned short大小端转换函数 阅读全文
posted @ 2019-03-24 11:12 youngliu91 阅读(3176) 评论(0) 推荐(0) 编辑