- 博客(21)
- 资源 (4)
- 收藏
- 关注
原创 unrecognized real-time signal
gdb版本:gdb-7.8.2,unrecognized real-time signal,交叉编译
2022-08-29 19:22:21
380
原创 qt开发环境搭建
安装好qt之后,需要配置以下环境才能使用qt软件1.1 把此路径添加到环境变量1.2 添加以下库到环境变量1.3 添加以下编译工具链到环境变量1.4 end
2021-05-22 10:41:50
217
原创 mips平台交叉编译samba
1.1 下载源码https://download.samba.org/pub/samba/stable/1.2 编译我下载的是3.0.11,主要是嵌入式平台空间有限,下载过新版本,可执行程序过大配置:./configure --host=mips-linux-gnu --disable-cups --disable-iprint --target=mips-linux-gnu CC=mips-linux-uclibc-gnu-gcc编译:编译过程中出错,提示configure: error:
2021-05-14 17:27:31
431
原创 valgrind源码下载及交叉编译
各版本valgrind源码下载https://sourceware.org/ftp/valgrind/编译./configure CC=mips-linux-uclibc-gnu-gcc CXX=mips-linux-uclibc-gnu-g++ AR=mips-linux-uclibc-gnu-ar --host=mips-linux-uclibc-gnu --prefix=/opt/output执行把交叉编译好的程序放到/mnt/sd_card/中export VALGRIND_LIB=/m
2021-04-15 18:51:53
1219
原创 linux系统中使用wpa_cli命令连接wifi
1.1 linux系统中使用wpa_cli命令连接wifiecho "ctrl_interface=/var/run/wpa_supplicant" > /tmp/wpa_supplicant.confecho "ap_scan=1" >> /tmp/wpa_supplicant.confwpa_supplicant -Dnl80211 -iwlan0 -c/tmp/wpa_supplicant.conf -B -P/var/run/wpa_supplicant.pid &
2021-03-03 22:26:02
1089
1
原创 mount命令挂载
1.1 mount 命令挂载1.1.1 以jffs2 可读可写权限挂载mtdblock5分区到/config目录mount -t jffs2 /dev/mtdblock5 /config1.1.2 以squashfs只读权限挂载mtdblock4分区到mtd目录mount -t squashfs /dev/mtdblock4 /mnt/mtd1.1.3 把分区 mmcblk0p1挂载到目录dir (可读可写)mount /dev/mmcblk0p1 /mnt/dirumount -f -
2021-03-02 22:10:47
1146
原创 ubuntu搭建samba服务
1.1 ubuntu搭建samba服务1.1.1 安装sambasudo apt-get install samba samba-common1.1.2 配置smb.confvim /etc/samba/smb.conf在最后添加以下[share]path=/home/zze/sambaavailable=yesbrowseable=yespublic=yeswritable=yes1.1.3 配置用户密码sudo smbpasswd -a root1.1.4 重启samb
2021-03-02 22:03:41
210
原创 ubuntu搭建nfs文件系统
1.1 搭建nfs文件系统1.1.1 修改nfs配置文件vim /etc/exports/root/ *(rw,sync)1.1.2 重启nfs 服务生效/etc/init.d/nfs-kernel-server restart1.1.3 挂载mount -t nfs -o nolock 192.168.1.200:/root /root192.168.1.200:/root #这个是虚拟机的ip地址/root #开发板的目录1.2 end...
2021-03-02 21:56:31
243
原创 gdbserver远程调试
1.1 嵌入式设备gdbserver远程调试在一些资源比较小的嵌入式设备,比如IPC设备,发生了段错误之后,无法在本地gdb,如果这个段错误比较容易复现,gdbserver此时主能发挥最大用处。1.2 例子1.2.1 目标机器运行以下命令gdbserver是通过交叉编译过的可执行程序,放到嵌入式板子上,运行以下命令./gdbserver 192.168.1.200:1234 ./程序1.2.2 开发机器运行以下命令在宿主机上执行以下命令mips-linux-uclibc-gnu-gdb
2021-02-28 21:39:52
1787
原创 搭建嵌入式双系统启动
1.1 硬件配置这是一个16M flash, 128M内存,mips架构的IPC芯片,因为OTA升级过程中,可能会升级kernel和rootfs,如果这两个分区升级过程断电,板子永远变砖,因此,考虑做成一个双系统,A系统升级挂掉,则由B系统恢复A系统。1.2 分区信息#16M flash 空间划分 (16M flash被划分为8个分区)256k(boot) 只读1536k(kernel 1) 只读2944k(rootfs 1) 只读128k(config) 只读,
2021-02-21 21:34:44
1582
2
原创 设置coredump文件生成路径
1.1 有时候不一些偶然发生coredump不好复现,这时就直接设置生成coredump文件生成路径,发生时再看堆栈信息,好捕捉问题1.2 贴代码void coredump_file_set(void){ #define CORE_FILE_SIZE 1024*1024*100 struct rlimit rlim; getrlimit(RLIMIT_CORE, &rlim); rlim.rlim_cur = rlim.rlim_max = CORE_FILE_SIZ
2021-02-21 20:38:17
630
原创 linux c数据与文件json格式序列化与反序列化
1.1 把数据以json格式写入文件int write_json_info(void){ FILE* file = fopen("/tmp/json_data","w+"); if(file == NULL){ UTIL_ERR("open file failed\n"); return -1; } cJSON * Data_Item = cJSON_CreateObject(); cJSON_AddStringToObject(Data
2021-02-21 20:18:22
376
原创 git常用
1.1 常用的git常用总结一下git branch #查看当前分支git checkout A(分支名) #切换到分支Agit branch -a #列出当前所有分支git pull origin A #从远程拉取A分支与本地分支合并git log #查看提交log记录git branch A #创建A新分支git status #查看修改过的和新添加的文件git add #把新文件和修改的添加到暂存区git commit -m “msg” #把暂存区提交到本地仓库gi
2021-02-20 22:48:39
148
原创 curl&&ssl交叉编译
1.1 下载curl 库https://github.com/curl/curl/releases/tag/curl-7_58_01.2 下载opensslhttps://github.com/openssl/openssl/releases/tag/OpenSSL_1_1_0h1.3 编译openssl./configure --with-ssl=/home/project/samba//openssl-OpenSSL_1_1_0h/output/lib --prefix=$(pwd)/outp
2021-02-19 22:05:35
479
原创 嵌入式设备交叉编译perf性能分析工具
嵌入式设备交叉编译perf性能分析工具1.1 背景最近工作一直在做嵌入式相关的开发,主要是应用方面,随着程序的业务功能越写越复杂,加上嵌入式系统上的调试工具,少之又少,主要还是靠printf的传统调试大法,下面来整个perf分析程序的热点函数。1.2 make menuconfig 进入内核选项配置界面搜索快捷键:"/",查看perf工具在哪里进入以下目录,并开户两个内核选项按“y”选中两个内核选项。打开perf工具依赖的glibc选项下面这两步很关键,如果不对,会导致很多编译错
2020-07-06 15:21:29
3333
3
原创 交叉编译htop工具到基于mips芯片的openwrt系统
1 交叉编译htop工具到基于mips芯片的openwrt系统1.1 背景在一些嵌入式系统上,很多工具都没有,像top,想看个内存使用,进程,cpu使用率,htop有源码,所以想着把htop交叉编译到这个嵌入式设备上。1.2 下载htop源码http://hisham.hm/htop/index.php?page=downloads打开以下链接,git clone到本地即可。git clone https://github.com/hishamhm/htop1.3 git clone到本地之
2020-07-06 11:32:06
2286
原创 内存泄露与valgrind
1 内存1.1 内存的相关概念介绍并不是所有的虚拟内存都会分配物理内存,只有那些实际使用的虚拟内存才分配物理内存,并且分配后的物理内存,是通过内存映射来管理的。MMU内存管理单元,完成虚拟地址与物理地址之间的映射。TLBCPU访问内存页表还是不够快,加了TLB,用来缓存页表,提高物理内存访问效率。页表记录虚拟地址与物理地址的映射关系。页内存映射的最小单位,也就是页,通常是 4 KB 大小。这样,每一次内存映射,都需要关联 4 KB 或者 4KB 整数倍的内存空间。多级页表页的大小只
2020-07-04 09:47:09
465
原创 strace命令使用分析
strace命令介绍与用法1.1 strace概述在操作系统中,进程分为用户态进程和内核态进程,应用程序运行在用户态,内核态负责对资源包括网络,磁盘,内存等管理,用户态进程要访问这些资源时,需要通过系统调用陷入内核态,由内核来统一管理和分配。通过系统调用陷入内核态,或者应用程序运行过程中,产生的signal,都可以被strace捕获到,每个系统调用的名称,参数,返回值,调用时间通过标准错误输出或者-O选项写入到文件中,通过分析这些信息,可以在应用程序发生故障时,不用重新编译程序,就可以捕获当前进程内
2020-07-04 09:17:15
2898
原创 MQTT协议分析与c语言实现(下)
MQTT协议分析与c语言实现(下)一、MQTT报文分析1.1 CONNECT-连接服务端客户端到服务端的网络连接建立(完成三次握手)后,客户端发送给服务端的第一个报文必须是 CONNECT 报文。在一个网络连接上,客户端只能发送一次 CONNECT 报文。服务端必须将客户端发送的第二个 CONNECT报文当作协议违规处理并断开客户端的连接。有效载荷包含一个或多个编码的字段。 包括客户端的唯一标识符, Will 主题, Will 消息, 用户名和密码。 除了客户端标识之外, 其它的字段都是可选的,
2020-05-10 14:50:39
4553
原创 MQTT协议分析与c语言实现(上)
MQTT协议分析与c语言实现(上)一、mqtt协议介绍1.1 概述MQTT是一个客户端服务端架构的发布/订阅模式的消息传输协议。它的设计思想是轻巧、开放、简单、规范,易于实现。这些特点使得它对很多场景来说都是很好的选择,特别是对于受限的环境如机器与机器的通信(M2M)以及物联网环境(IoT)。1.2 特点a) 开放消息协议,简单易实现b) 发布订阅模式,一对多消息发布c) 基于TCP/IP网络连接d) 1字节固定报头,2字节心跳报文,报文结构紧凑e) 消息QoS支持,可靠传输保证1.3
2020-05-09 23:50:45
3448
原创 lua table索引无序 实现多重排序
lua table索引无序 实现多重排序--lua table索引无序 实现多重排序 直接看代码 费话少说--目标 优先级: chinese > english > historytable_score = { [1] = { chinese = 80, english = 76, history = 100, }, [22]
2017-07-28 18:00:04
1782
mqtt_server_and_client.zip
2020-05-10
07-5123-07-ZigbeeClusterLibrary_Revision_7.pdf
2020-04-29
MqttServer-and-MqttClient.zip
2020-04-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人