- 博客(70)
- 资源 (3)
- 收藏
- 关注
转载 qualcomm&andriod&qnx abbreviation
提供的一种特殊的机制,可以将RISC处理器集成在其他IP芯核和外设中,它是有效连接IP核的“数字胶”,并且是ARM复用策略的重要组件。是ISO15765和ISO14229定义的一种汽车通用诊断协议,位于OSI模型中的应用层,它可在不同的汽车总线(例如CAN,LIN,Flexray,Internet和K-line)上实现。指的是UBIsubsystem,其工作在MTD设备上,是MTD设备的高层次表示,对上屏蔽了一些MTD需要处理的问题,如磨损均衡和坏块处理。更多的容量支持,更安全的引导。...
2022-07-18 14:38:46 919
原创 带参宏函数的分析与巧用
1.宏函数的使用场景频繁调用+比正常函数更少的额外压栈出栈开销。2.使用方法三种:{}、do{…}while(0) 和 ({})。3.优缺点类型优点缺点{}简单粗暴不能在无花括号且有分支的 if 语句中直接调用;能够不带 ; 直接调用do{}while(0)支持在无花括号且有分支的 if 语句中直接调用;支持提前退出函数宏;强制调用时必须使用 ;无返回值,不能作为表达式的右值使用({})支持在无花括号且有分支的 if 语句中直接调用;有返回值,支持作为表
2022-04-13 10:33:51 759
原创 【c++】浅拷贝与深拷贝
区别:浅拷贝只复制地址,深拷贝重新开辟内存;浅拷贝问题:若类中有申请堆指针,会在赋值和拷贝后造成析构的多次释放申请空间,造成内存问题;示例:class LightCopyA{public: LightCopyA(){p = new int[10];} ~LightCopyA(){ cout<<"release ..."<<p<<endl; delete p;}//#define LIGHT_COPY#ifdef
2022-03-03 15:44:09 503
原创 【hypervisor】初识
一.类型1)裸机型直接运行在物理设备上并基于内核,类似于抽象概念的OS;2)宿主机型运行在宿主机上的OS上,创建硬件全仿真实例,完全的虚拟硬件平台;(VMware)二.对比https://www.cnblogs.com/plxx/p/5461753.html...
2022-03-01 14:40:17 231
原创 【imx6q】交叉编译mqtt
1.下载Mosquittohttps://mosquitto.org/download/2.配置编译服务器上的编译环境source //opt/fsl-imx-fb/4.1.15-2.1.0/xxx/3.使用makefile方式编译make CC="gcc -march=armv7-a -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a9 --sysroot=/opt/fsl-imx-fb/4.1.15-2.1.0/sysroots/cortexa9hf-ne
2022-02-11 09:19:06 783
转载 CAN总线布线规范
摘要:今天的CAN总线已从汽车电子慢慢渗透入工业自动化,医疗,铁路等众多领域。据我们的数据统计,客户在使用CAN总线时约80%的问题均是由总线布局布线不合理导致,今天我们就来扒一扒CAN总线的布局布线规范。 所谓磨刀不误砍柴功,合理的总线布局布线等于成功的一半,那么总线布线时如何选取导线?如何选取布线拓扑结构呢? 一、 导线选型 1、 导线类型 CAN总线布线时必须采用双绞线,且需采用特征阻抗约120Ω的双绞线,在通信距离较长或电磁环境恶劣的情况下用屏蔽双绞线,这样可以有效抑制电磁干扰,保证
2022-02-09 17:30:38 8226 1
原创 【Qt篇】QString重载成员函数分析(支持格式化、自动补全、左右对齐功能)
QString的arg灵活使用,可以解决不同进制、不同字符拼接、截取、字符左右对齐补全等问题,下面就此给出包含所有情况的代码分析:void FloatTool::on_pushButton_released(){ QString tmp; if(m_setEndian) tmp = QString("0x%1%2%3%4").arg(m_setValue.dec[3], 2, 16, QLatin1Char('0')) \ .arg(m_s
2022-01-25 09:42:11 1515
原创 【工具篇】float值在不同系统内存中的数值转换工具
一.原理float在内存中如何存储?float为浮点型,32位机器中占4字节共32bit,下标0~31.31 位:符号位,正数为0,负数为1。30 位:方向位。小数点左移位1,右移为0。23~29:共7位,指数位。=指数-1。0~22:共23位,尾数。转换方法:1 整数部分转成二进制。整数不停的除2,直到商位0。逆序取出每次的余数。===>>>>就是得到整数部分的2进制表示2 小数部分转成二进制。小数部分不停的乘2,直到结果的小数部分位0.正序取出每次的商。3 第
2022-01-24 14:41:24 1732
原创 【问题分析】strace排查崩溃问题
1.查看进程信息 ps -e | grep name2.查看对应线程信息strace -p pid | wc -l3.抛出SIGABRT异常
2022-01-24 10:07:40 337
原创 【C++篇】易错问题总结
1.inline使用C++对满足如下条件的成员函数,默认编译为内联函数:1.类体类定义的成员函数;2.成员函数中无循环;如何显示使用inline:1.类体内声明并定义inline;2.类体内声明inline,类体外定义inline且定义必须在头文件中;推荐连接:https://blog.csdn.net/weixin_48669767/article/details/1127990592.纯虚函数使用1.抽象类的析构函数应当为虚函数:保证调用子类的析构函数,会自动调用基类的析构函数,有
2022-01-21 13:58:52 310
原创 【git篇】大文件存储LFS (Large File Storage)
参考阿里云指导手册:https://help.aliyun.com/document_detail/324155.html
2022-01-20 10:49:32 2446
转载 【CAN总线篇】can负载率计算与波特率选择
以can baudrate 250kbps为例:1.根据波特率计算10 ms总共可以发送多少 bit:1s=1000ms;(250000 bit/1000 ms)*10 ms=2500 bit2.计算最长的一帧报文有多少个bit:(扩展帧)1sof+29id+1ide+1rtr+1srr+2r+4dlc+8*8data+16crc+2ack+7eof=128bit3.计算10ms内可以支持的报文数目:2500 bit/128 bit≈19综上可得:当10 ms间隔的报文数量超过19条时,就会
2022-01-18 16:31:19 1775 1
翻译 linux下读取日志处理命令
1.一行中并行执行多个命令:命令间使用“;”分隔符command_1; command_2; command_32.仅在上一个命令成功的情况下,才能在一个命令中运行多个命令在上一个命令中,您了解了如何在一个命令中运行多个命令以节省时间。但很多时候你必须确保命令不会失败才能执行下一条命令,那怎么半?比如您要构建代码,然后在构建成功的情况下才接着运行make。在这种情况下,可以使用&&分隔符。&&确保下一条命令仅在上一条命令成功执行时运行。command_1 &
2022-01-04 13:19:07 563
原创 【git篇】git cherry-pick 多个commit操作
经常需要从一个分支选择性的合并commit到另一个分支,具体可使用cherry-pick实现:1.单个commit合并git cherry-pick commit_id2.多个连续commit合并commit_id到commit_idn之间,包括两端git cherry-pick commit_id..commit_idncommit_id到commit_idn之间,非闭包git cherry-pick (commit_id..commit_idn]挑选多个commit:git ch
2021-12-24 15:52:01 39498 8
翻译 [python篇]终结混用tab和空格导致的语法问题:IndentationError: unindent does not match any outer indentation level
执行一个Python脚本的时候,报“IndentationError: unindent does not match any outer indentation level" 错误,搜索了一下相关资料,遇到这个错误,是因为新的Python语法中是不支持的代码对齐中,混用TAB和空格的。借助Notepad++解决办法:1.使用Notepad++打开脚本,勾选“显示空格与制表符”,此时你会看到代码对齐使用了制表符与空格:2.设置Notepad++“设置-首选项“根治该问题,在Notepad++的首先
2021-12-23 10:59:36 371
原创 【git篇】git撤销操作
1.git撤销远程pushgit reset --soft push之前一次commit_idgit push origin dev --force2.撤销本次commit,未提交远程分支git reset --hard
2021-12-22 09:51:12 105
原创 【git篇】git分支操作
1.git在某个tag上新建分支,并提交远程仓库:git checkout tag_name -b new_branchgit push origin new_branch2.将主分支的某次提交合并到当前分支git cherry-pick commit_idgit push origin new_branch
2021-12-22 09:47:33 236
原创 【git篇】git标签操作
1.创建标签:直接创建:git tag <name>创建带备注的标签(给制定commit):git tag -a <name> commitID -m <"message">2.标签同步至远程服务器:指定标签:git push origin <name>所有标签:git push origin --tags3.删除本地标签:git tag -d <name>4.删除远程标签:git push origin :refs/tags/
2021-12-15 14:25:05 309
原创 tftp升级u-boot、zImage(其他文件)方法
使用tftp对芯片进行文件更新方法:1.开机进入boot系统:print查看serveripipaddr2.打开tftp,设置pc ip与板子ip在同一网段,若不一致,可修改板子ip,设置保存完再print确认一下:setenv serverip 192.168.31.99setenv ipaddr 192.168.31.81saveenv3.设置tftp软件的Current Directory,在其路径下放入待写入文件:4.使用tftp命令传输文件,可根据tftp Log view
2021-12-10 09:42:47 1424
原创 std::thread执行异常解决:terminate called without an active exception
使用std::thread+lamba时,处理不当容易在成段错误或抛出异常:段错误:一般lamba表达式使用了传引用[&]方式,导致使用了释放的局部变量,应该使用传值[=]方式;抛出异常:线程创建后,如果不关心线程执行情况,可调用detach使线程分离:void GpioBeep::beepOutButton(int delayMs){ std::thread tdTmp([=, delayMs](){ gpioWrite(m_pin, BEEP_ON);
2021-12-08 10:05:16 1025
原创 Qt下解决中文字符乱码必杀技
使用Qt时,经常出现中文字符显示乱码情况:各种编码转换方式,都无法很好解决该问题;终极解决办法:1.配置IDE编码格式为:UTF-8 无BOM(unix和windows都支持)2.编码源码文件中,保证源码文件的编码格式为UTF-8 无BOM,可以通过notepad++查看并修改源码文件编码格式:3.各种外部文档读取时,按原编码读取后转为UTF-8编码格式使用;...
2021-12-02 10:44:58 411
原创 arm linux下CPU占用过高问题排查方法
方法一:1.top指令查看各进程的cpu占用情况(top+1:可查看多核cpu情况):2.对CPU使用率过高的进程的所有线程进行排序ps H -e -o pid,tid,pcpu,cmd --sort=pcpu | grep MainWin`3.通过查看/proc中的信息来确定高CPU线程. 打印了4列,线程ID,线程名,用户时间和内核时间(排名未分先后)`awk '{print $1,$2,$14,$15}' /proc/689/task/*/stat`4.找出进程中线程情况使用g
2021-11-19 17:16:20 3653
原创 问题:virtual memory exhausted: Cannot allocate memory
原因:swap分区耗尽;解决办法: rm -rf /opt/images/swap dd if=/dev/zero of=/opt/images/swap bs=1024 count=2048000 mkswap /opt/images/swap swapon /opt/images/swap
2021-11-09 20:06:58 240
原创 imx6下Qt程序崩溃调试
小记一次崩溃问题排查:1.qt增加debug选项,产生-g参数:CONFIG += debug2.ARM板上开启coredumpulimit -c unlimited3.gdb MainWin -c core
2021-11-08 18:37:25 250
转载 QObject 的拷贝构造和赋值操作
QOject 中没有提供一个拷贝构造函数和赋值操作符给外界使用,其实拷贝构造和赋值的操作都是已经声明了的,但是它们被使用了Q_DISABLE_COPY () 宏放在了private区域。因此所有继承自QObject的类都使用这个宏声明了他们的拷贝构造函数和赋值操作符为私有。 为什么要这样做? 我们都知道Qt对标准C++增加了一些功能:signals, slots, object properties, events, event filters, string translati...
2021-10-12 17:04:29 488
原创 2021-10-12linux使用windows的共享文件系统:大小写不敏感问题
嵌入式开发经常需要linux windows环境共享文件,由于文件系统对大小写的敏感不同(windows不敏感,linux敏感),共享文件夹所处位置不同会导致编译错误,开发时严格主要文件引用时的大小写问题;如:Qt控件提升时,注意提升类文件的大小写问题!...
2021-10-12 10:59:01 334
原创 imx6显示及触摸旋转问题
参考:https://community.nxp.com/t5/i-MX-Processors/%E5%85%B3%E4%BA%8Eimx6q-fb%E6%97%8B%E8%BD%AC%E6%98%BE%E7%A4%BA%E7%9A%84%E9%97%AE%E9%A2%98/m-p/706293#180度旋转echo 1 > /sys/class/graphics/fb0/rotate#gstream旋转gst-launch playbin2 uri=file:///video_file v
2021-07-14 14:45:44 602
翻译 Qt Embedded Linux下隐藏鼠标箭头
Qt Embedded Linux下隐藏鼠标箭头1、编译Qt库的时候添加编译选项QT_NO_CURSOR,这样cursor相关的代码统统不会被编译进去,自然鼠标光标也不会出现在程序中。-no-mouse-tslib2、只希望在某个QWidget下不出现鼠标光标,则只要对这个widget调用QWidget::setCursor(QCursor(Qt::BlankCursor)),其它的窗口仍将出现鼠标。3、在main函数中,实例化了APPLICATION后,调用QApplication::setO
2021-07-13 15:26:54 420
原创 编程资源地址汇总
1.gnu开源软件项目镜像下载https://ftp.gnu.org/gnu/2.glibchttps://ftp.gnu.org/gnu/libc/2.gnu操作系统https://www.gnu.org/
2021-07-01 10:01:22 138
原创 AES详解
AES加解密:1.基础知识点:三种密钥长度:128b、192b、256b三种填充:分组加密(16B\24B\32B)不足时,填充:NoPadding、PKCS5Padding(默认)、ISO10126Padding五种位填充模式:ECB、CBC(初始化向量-保证同样的明文块加密成不同的密文块)、CTR、CFB、OFBS盒:16*16矩阵不连初始轮对应密钥长度的加密轮次:10、12、14轮2.底层原理:三轮加轮:初始轮、普通轮、最终轮|扩展密钥:44(10+1),每轮密钥不一致参考文章
2021-06-03 10:24:36 146
翻译 Qt组件总结
一、常用控件按钮类QPushButtonQtoolButtonQRadioButtonitemQListWidget容器类QStackWidgetQWidgetQFrame编辑类QComboBoxQLineEditQTextEdit显示类QLabelsetOpenExternalLinks()设置为true自动打开,false要打开链接需要捕捉linkActivated()信号//显示普通文本字符串 QLable *label = new QLable; label-
2021-05-27 14:50:51 3303
原创 【git篇】github之新建仓库
Git 全局设置git config --global user.name “xxx”git config --global user.email “xx@xx.com”创建一个新仓库git clone http://xxx.gitcd 1touch README.mdgit add README.mdgit commit -m “add README”git push -u origin master推送现有文件夹cd existing_foldergit initgit rem
2021-05-21 17:05:43 132
原创 单片机之模块库封装(.a)及使用(以CubeIDE为例)
一.创建库工程文件->新建-项目c++ Project编译静态库-MCU ARM GCC(单片机交叉编译工具链,只能编译静态库)4)编译模块代码生成libxxx.a库二.加模块库引入工程1)将模块库、-头文件添加进项目工程自定义路径下2)设置项目属性连接——库、编译——头文件设置:PS:库函数名固定格式:两种方式:把前面"lib"去掉和后面".a"去掉/原文件名前添加冒号1)库文件原名libxxx.axxx或:libxxx.a2)库文件原名xxx.
2021-05-21 15:51:11 2512
翻译 linux下vi命令总结
vi编辑器的使用一个编辑器具备的功能1)打开文件、新建文件、保存文件2)光标移动3)文本编辑4)(多行间|多列间)复制、粘贴、删除5)查找和替换//=========================================vi编辑器的配置cd /etc/vimcp vimrc ~/.vimrccd ~gedit .vimrc在.vimrc中加入如下内容:"关闭兼容功能set nocompatible "显示行号set number"编辑时 backspace 键
2021-05-07 10:08:49 190
翻译 linux下压缩解压缩命令总结
1.压缩1.压缩的概念1)压缩的目的:在网络传递文件时,可以先将文件压缩,然后传递压缩后的文件,从而减少网络带宽。接受者接受文件后,解压即可。2)压缩的类型有损压缩、无损压缩。a)有损压缩:如mp4视频文件,即使压缩过程中,减少了很多帧的数据,对观看者而言,也没有影响。当然mp3音乐文件也是有损压缩。b)无损压缩:如普通文件的压缩,为了保证信息的正确传递,不希望文件经过压缩或解压后,出现问题。2.linux下常用的压缩命令小节: 单个文件的压缩(解压)使用gzip 和bzip2
2021-05-07 09:32:20 203
翻译 linux下查找命令总结
find目的:查找符合条件的文件1)在那些目录中查找2)查找的内容格式: find 目录名 选项 查找条件举例:1)find /work/001_linux_basic/dira/ -name “test1.txt”说明:a)/work/001_linux_basic/dira/指明了查找的路径b)-name表明以名字来查找文件c)“test1.txt”,就指明查找名为test1.txt的文件同理:find /work/001_linux_basic/dira/
2021-05-07 09:25:39 160
转载 常见开源协议(MPL, BSD,Apache-2.0, GPL, LGPL, MIT)用于商业开发分析
简介开源软件(Open source software)的源代码对有追求的程序员来说是一无尽的宝藏,此外正确的使用开源软件,可以提高开发软件时的效率、提升软件质量。整理了一下常见的开源协议,希望大家对开源协议有更进一步的了解。先看一张总结图BSD开源协议BSD是"Berkeley Software Distribution"的缩写,意思是"伯克利软件发行版"。BSD开源协议:是一个给于使用者很大自由的协议。可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。 当你发布使用
2021-03-25 10:52:12 4734
JLINK刷写固件方法
2018-11-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人