- 博客(14)
- 资源 (82)
- 收藏
- 关注
原创 【genius_platform软件平台开发】第二十八讲:NEON指令集优化(附实例)
当在ARM芯片上进行一些例如图像处理等计算的时候,常常会因为计算量太大造成计算帧率较低的情况。因而,需要选择一种更加简单快捷的计算方式以获得处理速度上的提升。ARM NEON就是一个不错的选择.※ Neon指令优化NEON是一种SIMD(Single Instruction Multiple Data)*指令,也就是说,NEON可以把若干源(source)操作数(operand)打包放到一个源寄存器中,对他们执行相同的操作,产生若干目的(dest)操作数,这种方式也叫向量化(vectorizat.
2021-07-28 16:33:07 821 4
原创 【genius_platform软件平台开发】第二十七讲:linux系统函数fwrite、fflush使用及注意事项
linux系统函数fwrite、fflush使用及注意事项问题的产生解决办法问题的产生最近在重新嵌入式远程升级updateApp时,发现文件已经接收完毕,也调用了fwrite函数接口,进入到ARM linux系统中却发现写入的文件大小为0????一猜想肯定是fwrite函数出了问题,于是乎对该接口进行了一些研究果然发现存在缓冲区的,fwrite向文件中写入一些数据,并没有及时的同步到磁盘上,而是在内核缓冲区中暂留,等到程序结束的时候会被刷新都磁盘文件。解决办法靠fflush()函数#in
2021-07-28 14:43:53 365
原创 【genius_platform软件平台开发】第二十六讲:记录一个ls不显示颜色问题
偶然一次机会把ls颜色改坏了,后来就没再改回来,今天抽空改了回来,方案如下:1.使用vim ~/.bash_profile命令创建该文件,按以下内容编辑该文件if [ -f "$HOME/.bashrc" ];then . "$HOME/.bashrc"fi2.然后使用命令source ~/.bash_profile使上述修改生效3.使用命令vim ~/.bashrc,进入编辑,在最后一行添加如下内容:alias ls=‘ls --color’4.同样source ~/.b
2021-07-24 17:18:36 152
原创 【genius_platform软件平台开发】第二十五讲:记录一个使用cmakelists文件cmake编译时的一个错误提示
CMake Error: CMake can not determine linker language for target: Base问题原因:目录层级包含不正确include_directories("./Base/Comm")include_directories("./Base/Socket")…解决方案:#头文件目录#当前目录在Base目录,代码中使用的都是Base/***所以直接指定包含上级目录…即可include_directories("…/")...
2021-07-24 16:54:14 511
原创 【genius_platform软件平台开发】第二十四讲:Neon 基础入门和Neon Intrinsics各函数介绍
这里写目录标题1 Neon 基础入门1.1 ARM 基础知识1.1.1 ARM 架构1.1.2 ARM 寄存器1.1.3 ARM指令结构1.1.4 SIMD和SISD2 NEON 简介2.1 NEON 架构(数据类型/寄存器/指令集)2.1.1 NEON 关键概念:向量,向量线(管道 lane)2.1.2 NEON 数据类型2.1.3 NEON 指令集2.1.4 NEON 编程可以用内联函数(intrinsics) 和 汇编两种。3. Neon Intrinsics各函数介绍1 Neon 基础入门1.1
2021-07-24 15:04:31 1947 2
原创 【genius_platform软件平台开发】第二十三讲:static关键字使用
在项目组成员中发现有小伙伴在定义全局静态变量时在头文件中。请引起足够的注意!!!有些刚毕业或者工作几年的小伙伴基础不牢的还是要好好的记忆下,例如const、static、register、volatile等关键字的使用及注意事项,避免在开发过程中引起异常。testA.hstatic int x = 1;void printAx();testA.cpp#include "stdafx.h"#include "testA.h"void printAx(){ int nTmp = x
2021-07-24 12:52:29 141
原创 【genius_platform软件平台开发】第二十二讲:reboot复位函数、access函数、popen函数、pclose函数
== 1. access函数说明==函数原型int access(constchar * pathname,int mode);相关函数stat,open,chmod,chown,setuid,setgid表头文件#include<unistd.h>函数说明① 参数pathname——文件名称② 参数mode——要判断的访问权限。有几种情况组合:R_OK ——文件可读W_OK——文件可写X_OK ——文件可执行F_OK ——文件存
2021-07-22 15:22:15 218
原创 【genius_platform软件平台开发】第二十一讲:Linux常用命令汇总
Linux常用命令汇总==1. hexdump -C filename 命令:查看二、十六进制文件====2. tar -zcvf/zxvf xxxx.img 命令:压缩解压缩====3. ls -lh 命令:查看目录内详细内容信息====4. printenv 环境变量名 命令:打印环境变量==1. hexdump -C filename 命令:查看二、十六进制文件hexdump -C /tmp/dev_spec.bin00000000 78 56 34 12 78 56 34 12 72 6
2021-07-22 15:06:09 247
原创 【genius_platform软件平台开发】第二十讲:Linux命令之$#、$0、$1、$@、$*、$$、$?
1.首先介绍一下这个几个参数的意义:$#:传入脚本的参数个数;$0: 脚本自身的名称;$1: 传入脚本的第一个参数;$2: 传入脚本的第二个参数;$@: 传入脚本的所有参数;$*:传入脚本的所有参数;$$: 脚本执行的进程id;$?: 上一条命令执行后的状态,结果为0表示执行正常,结果为1表示执行异常;其中@与@与@与正常情况下一样,当在脚本中将∗加上双引号作为“*加上双引号作为“∗加上双引号作为“”引用时,此时将输入的所有参数当做一个整体字符串对待。比如输入参数有a b c
2021-07-17 15:45:15 158
原创 【genius_platform软件平台开发】第十八讲:VS2013winsock2.h发生error C3861: ‘WSASetLastError‘、vs显示空格
问题:彻底无语了,不小心某个文件包含了windows.h头文件,而windows.h文件里面包含着winsock.h文件,如果你下次使用winsock2.h文件时,位置不对,然后编译器会给你一大堆重定义错误问题。初级解决办法:把winsock2.h文件放在任何可能包含winsock.h文件(尤其是windows.h文件,它就包含了winsock.h文件)的前面,因为winsock2.h头文件有这样的宏定义:#ifndef _WINSOCK2API_#define _WINSOCK2API_#d
2021-07-15 17:50:43 465
原创 genius_platform软件平台开发】第十七讲:数据成员不同位置的访问效率
// 类的数据成员.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <windows.h>//////////////////////////////////////////////////////////////////////////// 1. 验证数据成员不同位置访问效率/*如果成员相对于结构体或类开头的偏移量小于128,则访问数据成员的代码会更
2021-07-15 17:43:21 115
原创 【genius_platform软件平台开发】第十九讲:类和结构体内存占用大小
// 类和结构体内存占用大小.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <windows.h>struct MyStruct{ short a; // 6个字节补齐 double b; int c; // 4个字节补齐};struct MyStruct2{ double b; short
2021-07-15 17:42:32 104
原创 【genius_platform软件平台开发】第十五讲:Linux和Winodws获取CPU核数、进程线程绑定特定CPU详解
㈠ 概念① 物理CPU实际Server中插槽上的CPU个数物理cpu数量,可以数不重复的 physical id 有几个② 逻辑CPULinux用户对 /proc/cpuinfo 这个文件肯定不陌生. 它是用来存储cpu硬件信息的信息内容分别列出了processor 0 – n 的规格。这里需要注意,如果你认为n就是真实的cpu数的话, 就大错特错了一般情况,我们认为一颗cpu可以有多核,加上intel的超线程技术(HT), 可以在逻辑上再分一倍数量的cpu core出来逻辑CPU数量=物理
2021-07-08 11:17:19 448 6
原创 Linux网络数据包接收处理过程
因为要对百万、千万、甚至是过亿的用户提供各种网络服务,所以在一线互联网企业里面试和晋升后端开发同学的其中一个重点要求就是要能支撑高并发,要理解性能开销,会进行性能优化。而很多时候,如果你对Linux底层的理解不深的话,遇到很多线上性能瓶颈你会觉得狗拿刺猬,无从下手。我们今天用图解的方式,来深度理解一下在Linux下网络包的接收过程。还是按照惯例来借用一段最简单的代码开始思考。为了简单起见,我们用udp来举例,如下:int main(){ int serverSocketFd = socket(A
2021-07-02 10:11:32 1442 2
CodeComposerStudio-TI系列DSP开发环境经典教程(中文版)
2023-11-09
USB-DEV-BULK驱动、USB-DEV-SERIAL-DRIVER驱动、USBlyzer 通过"USB BULK"管道实现
2023-09-04
USB转串口驱动.zip
2023-09-01
ZOC602串口工具(针对Tronlong TL6748-TI TMS3206748 DSP)
2023-08-31
TI-TMS320C6748DSP技术参考手册(中文版)+参考例程
2023-08-03
USB CDC从理论到实践-9527的专栏-CSDN博客 - blog.csdn.net
2023-02-10
UVCStreamComandParserV1.1.exe
2023-02-10
BusHound-v6.0.1.rar BusHound-v6.0.1.rar BusHound-v6.0.1.rar
2023-02-10
海思-拼接 产线标定库 API 参考.pdf
2022-11-16
linux系统V4L2驱动对接代码C++撰写
2022-10-13
ARM NEON指令集.docx
2021-06-03
linux.chm 学习的最好帮手
2008-08-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人