嵌入式
rigensen
这个作者很懒,什么都没留下…
展开
-
嵌入式搭建ftp服务器
嵌入式ftp下载源码git clone git@github.com:gamman/stupid-FTPd.git编译make CC=arm-linux-gnueabihf-gcc编辑stupid-ftpd.confserverroot=/mnt/mmc0changeroottype=virtualport=21pc linux安装ftp客户端apt-g...原创 2020-02-25 18:21:19 · 1015 阅读 · 0 评论 -
c单元测试框架
C也能实现泛型编程。如何实现呢,使用union,同一个变量可以存放多种类型变量。对于单元测试,往往我们希望的是,同一个函数,对应多种输入,从而判断它的输出是否在我们的期望之内。c单元测试框架已经实现,在本人的github:https://github.com/felix-001/test-framework...原创 2019-10-18 15:42:35 · 258 阅读 · 0 评论 -
ARM快速定位segment fault
概要ARM平台调试段错误很麻烦,主要原因有一下几点:gdb不容易跑,嵌入式系统一般内存不够大valgrind也需要占用很大的内存有的平台工具链不支持backtrace有一种办法是捕获发生段错误时的信号,打印出发生段错误时的各种寄存器的值,其中非常关键的一个寄存器就是pc寄存器的值,通过objdump反汇编出源码之后,可以快速定位到发生错误的代码行,代码如下:// Last Upda...原创 2019-03-24 10:06:25 · 1133 阅读 · 0 评论 -
ARM调查内存泄漏
概要valgrind即使在arm上移植成功了,想跑起来也非常困难,那么如果去调查arm平台的内存泄漏问题呢,一种思路是替换glibc的malloc首先定义自己的mymalloc.h// Last Update:2018-09-26 11:27:00/** * @file mymalloc.h * @brief * @author felix * @version 0.1.00...原创 2019-03-24 10:27:56 · 1331 阅读 · 0 评论 -
嵌入式环境内存泄漏检查
嵌入式环境内存泄漏检查比较麻烦,valgrind比较适合于在pc上跑,嵌入式上首先移植就很麻烦,移植完了内存比较小,跑起来也比较费劲。所以手动写了一个内存泄漏检查工具,基本思路是,hook每一次的malloc或者free的调用,记录申请内存的大小,地址,和调用的函数。以便追踪内存泄漏。并且开启一个线程,每隔一段时间监测是否有哪个函数申请的内存在增长。代码地址:https://github.co...原创 2019-06-25 15:07:36 · 1260 阅读 · 0 评论 -
qemu模拟aarch64
下载linux内核linux-4.14.35.tar.gzmake ARCH=arm64 defconfigmake ARCH=arm64 CROSS_COMPILE=aarch64-linux-制作文件系统mv rootfs.cpio.gz ./tmpcd ./tmpgunzip rootfs.cpio.gzmkdir -p ./rootfscd ./rootfscpio ...原创 2019-07-18 14:46:14 · 2168 阅读 · 0 评论 -
v3s lichee zero开发
概述Allwinner_V3s_Datasheet_V1.0.pdf 7.2.4https://licheezero.readthedocs.io/zh/latest/index.htmlhttps://www.kancloud.cn/lichee/lpi0/317714https://github.com/Lichee-Pihttp://bbs.lichee.pro/d/127-li...原创 2019-07-19 12:10:20 · 2548 阅读 · 1 评论 -
c日志模块,宏实现
高大上的日志模块,实现了如下功能:分模块分级别上代码:extern int g_log_level;#define LOG_COMMON( module, level_str, level, args...) do { \ if ( level >= g_log_level ) { \ printf("| %20s | %5s | %s:%d(%s)# "...原创 2019-09-23 20:47:17 · 419 阅读 · 0 评论