- 博客(174)
- 资源 (16)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Makefile中的调试打印方法
使用info/warning/error增加调试信息info$(info "here add the debug info")注,info信息,不打印信息所在行号warning$(warning "here add the debug info")error$(error "error: this will stop the compile")这个可以停止当前makefil...
2019-03-20 16:53:32
25787
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 开源项目在arm下的交叉编译规则整理
典型的开源项目编译方式整理,以openssl源码的交叉编译为例,查看源码目录$ vim README $ vim INSTALL$ vim Configure1/查看源码介绍,2/查看编译安装文件介绍,3/查看配置脚本,有的话,需要就看下一般INSTALL会提供一套完整的编译/测试/安装流程以及参数配置.一般流程:找到Makefile文件存在Makefile文件$ m...
2018-12-27 01:09:19
620
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 嵌入式linux开发必备: gdb常用调试命令记录
命令 描述 其他 backtrace(或bt) 查看各级函数调用及参数 finish 连续运行到当前函数返回为止,然后停下来等待命令 frame(或f) 帧编号 选择栈帧 info(或i) locals 查看当前栈帧局部变量的值 list(或l) 列出源代码,接着上次的位置往下列,每次列10行...
2018-08-28 22:56:27
1977
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 linux core dump 永久生成
目的: 嵌入式linux系统,busybox 制作的文件系统,开启core dump功能.设置为永久生效, 问题: 之前的配置如下:(重启后失效,,,,,)vi /etc/rc.d/rc.local ....ulimit -c unlimited //在/etc/rc.d/rc.local 中增加...reboot -f//重启1.如何使能/禁用 core dump 功能?...
2018-07-28 14:44:30
1506
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 代码版本维护工具git应用笔记-持续更新
工具:工具:git命令行与TortoiseGit 图形界面交互 这里主要使用TortoiseGit工具.概念:工作区和暂存区, 工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。 Git的版本库里存了很多东西,,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD...
2018-07-27 01:58:59
803
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 VMware tools工具的安装
目的:解决各种疑难杂症1、已经/一直显示“重新安装VMware tools”,但找不到安装包? 2、点击“安装VMware tools”,提示CD/DVD被占用等等一些信息 3、其他衍生问题。VMware tools 功能:只有在VMware虚拟机中安装好了VMware Tools,才能实现主机与虚拟机之间的文件共享, 同时可支持自由拖拽的功能, 鼠标也可在虚拟机与主机之前自由...
2018-06-11 22:04:48
943
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 linux 实用命令/工具(持续更新)
查找包含某字符串的文件及位置:find .|xargs grep -ri "要查找的字符串"查找文件位置:find [查找路径] -name "文件名"eg:find / -nam
2018-05-11 16:01:58
856
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
转载 嵌入式linux根文件系统制作--busybox
busybox是构造文件系统最常用的软件工具包,它被非常形象地称为嵌入式Linux系统中的“瑞士军刀”,因为它将许多常用的Linux命令和工具结合到了一个单独的可执行程序(busybox)中。 虽然与相应的GNU工具比较起来,busybox所提供的功能和参数略少,但在比较小的系统(例如启动盘)或者嵌入式系统中已经足够了。 busybox在设计上就充分考虑了硬件资源受限的特殊工作环境。它采用一种...
2018-04-16 16:26:09
1434
转载 linux下,应用程序中的全局变量与so库中的全局变量名冲突,怎么办?
文章目录-Wl,-Bsymbolic动态库与应用,如果存在同名全局变量,会如何?实现了一个动态库,封装了一些方法。然后基于这个动态库,实现了一个应用程序。应用程序中含有全局变量A,动态库中也含有全局变量A,当调用动态库中函数后,发现应用程序的A发生了变化!-Wl,-Bsymbolic在创建动态链接库时,gcc/g++选项中添加编译选项-Wl,-Bsymbolic其中Wl表示将紧跟其后的参数,传递给连接器ld。Bsymbolic表示强制采用本地的全局变量定义,这样就不会出现动态链接库的全局变量定
2020-12-06 16:51:27
823
原创 线程互斥量死锁,与sleep没有关联
文章目录死锁问题死锁原因产生死锁的几个常见场景死锁产生的四个必要条件==仅供参考互斥条件占有和等待条件不可抢占条件环路等待条件pthread_mutex_lock(),线程互斥量死锁,与sleep没有关联.项目上,定位死锁原因,无意中看到pthread_mutex_lock()以及 sleep()字样的文章.说的模糊不清,但是又貌似有些因果.反复查阅资料以及测试,完全可以确认:pthread_mutex_lock(),线程互斥量死锁,与sleep没有关联.死锁问题死锁原因如果一个线程试图对同
2020-11-29 17:37:40
1007
3
原创 c语言,函数声明的误区
文章目录结论官方依据项目上,使用一个未声明的,返回值为float类型的函数;结果,返回值完全非预期.被整的怀疑人生.根深蒂固的一个错误认知:在C语言中,函数在调用前不一定非要声明。如果没有声明,那么编译器会自己主动依照一种隐式声明的规则,为调用函数的C代码产生汇编代码。结论期望,全部的人,全部的函数,都严格声明,不是很切实际.大的工程,人多眼杂.但是要谨记:返回值为非int类型的函数,务必要进行声明.至少:返回值为float/double类型的函数,务必要进行声明.官方依据C98
2020-11-28 15:31:21
2350
原创 paho mqtt c库,一个进程创建多客户端,mqtt侧,实际仅创建一个线程.
文章目录场景:问题原因场景:客户端A,与本地代理通信;客户端B,与远端的代理通信(物管平台).问题两个客户端的消息到达函数(MQTTAsync_messageArrived类型),不能并行.互相阻塞.原因翻阅源码,得出结论:同进程,仅可创建一个线程,不会因为多个客户端而创建多个线程....
2020-11-04 20:21:12
1017
2
转载 动态库中的全局变量,多进程使用,是否存在问题.
为什么动态库中的全局变量是可以用的?之前在linux下做过一个测试:写一个so,该so中有一个全局变量。so中的代码在运行时会修改该全局变量的值。然后,有多个程序都需要该so,而且这些应用程序都启动了。此时,很显然so只被加载了一份,那么,当这么多程序在运行调用该so时,该so中的全局变量的值会被覆盖来覆盖去么?答案是不会。这是测试的答案。现在知道原理了,尽管这是windows via C/C++中解释的windows的做法,但是我想linux也是这么类似处理的。windows 使用memory
2020-11-04 20:05:53
906
转载 linux中,<rc.d>,<rc.local>等带有rc的文件或目录 含义
文章目录在linux中经常会碰到bashrc,rc.d,rc.local等带有rc的文件或目录,一般都是启动时需要加载的。英文原义:RC (runcom,run command)中文释义:含有程序(应用程序甚至操作系统)启动指令的脚本文件注 解:这一文件在操作系统启动时会自动执行,它含有要运行的指令(命令或其它脚本)列表。文章出处:【Linux】——常见的rc的含义...
2020-10-29 11:01:54
790
原创 linux 查看服务是否存在,是否启动
文章目录linux常见服务列表:查看服务是否存在服务的概念:查看当前系统环境,是否存在指定的服务sudo service --status-all查看指定的服务是否已经运行service 服务名 statusps aux如何查看当前系统支持的服务程序有哪些?下边,以ssh服务为例进行说明.linux常见服务列表:首先,我们应该对系统可能支持的服务,有个大概的印象.参见:LINUX常见服务列表查看服务是否存在服务的概念:服务(service) 本质就是进程,不过是运行在后台的进程,服务通常都会
2020-08-19 20:32:03
5320
原创 linux 终端特殊组合键
<unix环境高级编程>中,经常提及终端特殊组合键,这里记录方便后来者.终端中断[字]符:Ctrl+C组合键或者delete按键.终端退出[字]符:Ctrl+\组合键终端停止/挂起[字]符:Ctrl+Z组合键文件结束符EOF(End of File):Ctrl+D组合键...
2020-05-07 17:24:30
430
原创 linux shell脚本语法笔记(待续)
文章目录反引号单引号''双引号""单小括号 ()双小括号 (( ))单中括号 []双中括号[[ ]]反引号引用命令如果需要调用命令的输出,或把命令的输出赋予变量,则命令必须使用反引号包含,这条命令才会执行,反引号的作用和 $(命令) 是一样的,但是反引号非常容易和单引号搞混,所以推荐大家使用 $(命令) 的方式引用命令的输出。单引号’’关闭所有的特殊字符功能,使特殊字符变成普通字符,不...
2020-04-13 19:58:15
238
原创 Linux SIGPIPE信号产生原因与解决方法
文章目录原因SIGPIPE(Broken pipe)解决方法忽略SIGPIPE信号调整socket发送函数的flags参数参考:潜水同行技术群,有人遇到如下场景,拿出来分享/记录,场景:大厂的嵌入式平台,多个厂家,多进程间socket通信.,A进程作为客户端,连接作为服务器的B进程,A连接B,顺畅A进程close此套接字A连接B,失败………最后发现,A进程close套接字...
2020-04-10 20:15:12
3294
原创 C语言,指针强制类型转换与内存对齐.
指针类型强制转换,并进行解引用,引起的内存对齐问题.像*(int*)pData这样的指针类型强制转换,用的很多.终于在今天,正式入坑.此处留下测试场景,备忘.实例:测试程序:void TestPointer(void){ BYTE abytBuf[10]={0,1,2,3,4,5,6,7,8,9}; BYTE* pData=&abytBuf[5]; int dwData;...
2020-03-14 15:32:25
2934
3
原创 Makefile 语法以及关键字说明
include、sinclude在 Makefile 使用 include 关键字可以把别的 Makefile 包含进来,这很像 C 语言的#include,被包含的文件会原模原样的放在当前文件的包含位置。include 的语法是:include <filename> filename 可以是当前操作系统 Shell 的文件模式 (可以保含路径和通配符) 在 incl...
2020-02-16 08:16:18
2546
原创 linux c设置/获取网卡参数
依据SIOCSIFFLAGS见glibc源码:glibc\sysdeps\mach\hurd\bits\ioctls.h/* socket i/o controls */#define SIOCADDRT _IOW('r', 10, struct ortentry) /* add route */#define SIOCDELRT _IOW('r', 11, struct ortentr...
2019-12-26 15:20:44
1237
原创 C语言逗号运算符
文章目录概述:实例:概述:逗号运算符表达式取最后一个值返回。特点:优先级别最低;自左往右执行表达式;返回值为表达式最后一个.实例:int i = 0;printf("%d\n", (i = 3*3 , i*5));输出: 45.赋值运算符优先级高于逗号运算符;先执行i=33后再执行i5;输出:i*5的值.详情,参见:C语言逗号运算符...
2019-11-17 12:42:40
438
原创 apue读书笔记:实例10-10 带时间限制调用read
文章目录实例FAQalarm函数,在其中什么作用?为何能达到解阻塞作用?自己手敲代码,自行编译链接.(非官方源码环境)但与原书的效果不一致.实例程序中有一个读低速设备的会阻塞的操作(见10.5节),我们希望它超过一定时间后就停止执行该操作。程序实现了这一点,它从标准输入读一行,然后将其写到标准输出上。#include "apue.h"static void sig_alrm(in...
2019-11-17 10:57:01
165
原创 linux下 core dump文件不能生成的可能原因
配置了core 的生成环境,但core就是无法生成.此时,请参阅,也许会有帮助.linux下生成core dump文件的环境配置方法作为参照,参见:linux core dump 永久生成Linux下生成Core Dump文件的方法(总结)文件不能生成的可能原因生成core文件的信号被用户程序捕捉(操作系统在程序发生异常而异常信号在进程内部又没有被捕获的情况下,方可生成core文...
2019-11-13 18:51:40
4242
原创 linux 信号类别/列表-概述
文章目录本机linux系统支持的信号列表查看本机linux系统支持的信号列表信号术语解释:相关信号解释SIGHUP(Hangup,挂断)SIGINT(Interrupt)SIGQUIT(Quit)SIGILL(Illegal Instruction)SIGTRAP(Trace/breakpoint trap)SIGABRT(Abort)SIGBUS(Bus error )SIGFPE(Floati...
2019-11-13 15:37:46
1127
原创 通俗理解:实际用户ID/有效用户ID/保存的设置用户ID(saved set-user-ID)
文章目录从文件的角度,看用户/组的权限.linux对文件的描述从用户/组的角度,看文件的权限.实际用户ID/有效用户ID/保存的设置用户ID(saved set-user-ID)实例对应:阅<unix高级环境编程>过程中,高频出现:实际用户ID/有效用户ID/保存的设置用户ID(saved set-user-ID),看着很乱,摘不清楚.因为Linux是多用户多任务系统,所以一个...
2019-11-09 22:36:12
1679
原创 C程序中获取变量/宏名称的方法
在C程序中怎么打印一个变量的名称呢?利用#,看代码:#include "stdio.h"#define VNAME(value) (#value)int main(void){ int autoVal = 1; #define MACRO_TEST (6) printf("auto value name is %s\n",VNAME(autoVal)); printf("m...
2019-11-05 17:05:40
5017
原创 正则表达式 常用表达式
正则表达式,很强大.捡起来,提高工作效率.基础语法:普通字符-略非打印字符-略特殊字符特殊字符描述^匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合。要匹配 ^ 字符本身,请使用 ^。$匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 ‘\n’ 或 ‘\r’。要匹配 $ 字符本...
2019-10-02 17:50:39
429
原创 Linux下生成Core Dump文件的方法(总结)
日常工作中,不可避免的出现程序跑飞崩溃等情况.此时,我们需要coredump文件的支撑.但总有一些时候,莫名其妙的无法生成coredump.本文,针对此问题,描述该如何生成一个coredump,需要具备哪些条件.剩下的,请各位看官自行比对.Coredump定义Coredump叫做核心转储,它是进程运行时在突然崩溃的那一刻的一个内存快照。操作系统在程序发生异常而异常在进程内部又没有被捕获的情...
2019-09-16 14:25:51
3000
翻译 linux systemd.service说明
翻译描述名称以“.service”结尾的单元配置文件对有关由systemd控制和监督的进程的信息进行编码。此手册页列出了特定于此单元类型的配置选项。有关所有单元配置文件的常用选项,请参阅systemd.unit(5)。通用配置项在通用“[Unit]”和“[Install]”部分中配置。特定于服务的配置选项在“[服务]”部分中配置。systemd.exec(5)中列出了其他选项,它们定义了执...
2019-09-06 18:12:54
12271
原创 linux /pro文件 常用信息记录
Linux系统上的/proc目录是一种文件系统,即proc文件系统。与其它常见的文件系统不同的是,/proc是一种伪文件系统(也即:虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息,甚至可以通过更改其中某些文件来改变内核的运行状态。基于/proc文件系统如上所述的特殊性,其内的文件也常被称作虚拟文件,并具有一些独特的特点...
2019-04-30 15:58:47
571
原创 嵌入式,GDB在线远程调试
嵌入式开发,习惯了mdk,iar等IDE+JLink调试工具的搭配(在线debug很顺手),linux上的在线debug如何开展?概念:所谓远程调试,就是开发板上建立一个gdb服务端,同时待调试的程序也位于开发板,然后在PC机上使用gdb发起远程连接来进行调试。也就是说,在PC端调试开发板上的程序。请注意,在PC端需要包含被调试程序的符号调试信息(symbolic debug informa...
2019-04-24 14:52:41
632
原创 Linux下添加Windows磁盘映射
实现:linux上共享一个文件夹,在window可以访问linux共享的该文件夹.本机环境:linux上共享的文件夹路径:/home/jzq/smb-work用户名:jzqlinux环境上准备具备samba工具sudo apt-get install sambawhich samba编辑smb配置文件sudo vim /etc/samba/smb.conf #编辑smb配...
2019-04-24 13:41:44
1612
原创 HardFault_Handler异常排查处理方案
原理:cortex-M3内核,异常发生时,内核将R0~R3、R12、LR、PC、XPRS 寄存器依次入栈,其中LR即为发生异常前PC将要执行的下一条指令地址。发生异常之后可首先查看LR寄存器中的值,确定当前使用堆栈是MSP还是PSP,然后找到相应堆栈的指针,并在内存中查看相应堆栈里的内容。注意:寄存器均是32位,且STM32是小端模式。(参考Cortex-M3权威)HardFault...
2019-03-12 13:13:45
2445
1
原创 显示器分辨率引起的工具显示问题(页面不完整)
PC属性:PC显示器分辨率:1920x1080 ,缩放%150,解决方法:属性-兼容性,在DPI相关的选项做文章.支持选项:应用程序/系统/系统增强“应用程序”选项代表系统将强制进程在显示器的分辨率下运行,该设置此前叫做“高DPI设置时禁用显示缩放”,在该选项下系统不会对用户界面进行拉伸;“系统”选项则意味着系统将对DPI感知进程进行标准处,当DPI变动的时候,系统将对...
2019-03-08 15:51:13
6257
DLT 698.35 电能信息采集与管理系统 第3-5部分电能信息采集终端技术规范-低压集.pdf
2020-04-11
DLT 698.34-2010 电能信息采集与管理系统 第3-4部分:电能信息采集终端技术规范公变采集终端特殊要求.pdf
2020-04-11
DLT 698.33-2010 电能信息采集与管理系统 第3-3部分:电能信息采集终端技术规范专变采集终端特殊要求.pdf
2020-04-11
DLT 698.31 电能信息采集与管理系统 第3-1部分:电能信息采集终端技术规范-通用要求.pdf
2020-04-11
DLT 698.2-200X 电能信息采集与管理系统第2部分主站技术规范.pdf
2020-04-11
DLT 698.1-2009 电能信息采集与管理系统 第1部分 总则.pdf
2020-04-11
Arduino uno 红外收发模块控制 步进电机
2013-12-12
Arduino uno 控制42步进电机(TB6560驱动模块)
2013-12-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人