嵌入式
文章平均质量分 96
Callon_H
喜欢操作系统,喜欢从顶层看底层。
展开
-
基于资源表的死锁检测实现
最近继续造轮子,Github完整源码见如下链接:https://github.com/CallonHuang/DeadLockCheck死锁一直是众多开发者碰到的难题,排查方式最多的就是gdb/strace+gdb(之前也写过相应博客),那么是否有一种使用纯应用的方式检测死锁的方法呢?本文即介绍一种基于资源表的死锁检测实现方法:使用宏定义或动态库优先加载将mutex相关函数捕获lock前,将锁地址/pid/函数调用地址等信息存储到请求的Hash表lock后,将锁地址/pid/函数调用地址等信息原创 2020-06-19 01:04:37 · 404 阅读 · 0 评论 -
简易伙伴系统的实现
最近项目上涉及内存管理,继而了解了伙伴系统,发现很有意思,于是实现了一版简单的,效率和参数校验上都没有太理会,仅仅正向测试了下,分享给大家,Github完整源码见如下链接(源码有注释图,更加清晰):简易版buddySystem两个核心的函数如下:int BuddyAlloc(BUDDY_TYPE buddy_type, void **viraddr){ int i = 0; BUDDY_INFO* target_node; if (free_area[buddy_type].原创 2020-05-18 22:56:38 · 720 阅读 · 0 评论 -
ARM平台(海思)unwind栈回溯的实现
本文在撰写前尝试了约三四天的时间来实现海思平台的栈回溯,最终仅以此文作为记录,帮助更多的人。原创 2020-01-17 02:34:18 · 7976 阅读 · 1 评论 -
OpenCL的简单使用
详情可见:https://github.com/CallonHuang/OpenCL_examples/tree/master/test_hello该例子源于Apple的hello程序,源例子使用clCreateProgramWithSource,后自己增加了clCreateProgramWithBinary的使用放在里面,并使用build.sh和宏进行封装,可以帮助大家简单了解OpenCL的...原创 2018-09-09 14:18:31 · 1654 阅读 · 0 评论 -
Hi3520D上手过程之Kernel前段学习
目录一、Kernel的入口二、Kernel的启动过程1. head.S过程分析(1)判断内核版本是否支持该CPU(2)保存RAM的起始物理地址到r8寄存器(3)校验参数的合法性(__vet_atags)(4)创建一级页表(5)保存最后的跳转地址,设置处理器和MMU相关寄存器(6)使能MMU(7)head.S的终点一、Kernel的入口在前一篇博客中,...原创 2018-06-10 22:24:51 · 1505 阅读 · 0 评论 -
嵌入式调试经验分享
syscall(SYS_gettid)/getpid() 获取当前线程/进程号strace -tt -T -p tid/pid 获取当前线程/进程运行的系统调用得到的结果可能为:ioctl(237, xxx, xxx)或futex(0x11f4374, xxx, xxx)通过系统调用中第一个参...原创 2020-01-18 23:41:15 · 316 阅读 · 0 评论 -
Hi3520D上手过程之U-boot学习
目录一、烧写过程初探1. 说明文件2. 编译3. 烧写二、U-boot学习1. u-boot流程(1)u-boot起点(2)u-boot引导过程(3)u-boot终点2. u-boot命令新增-update一、烧写过程初探当拿到SDK时,找到源码路径解压,一般如下所示:运行sdk.unpack即可进行解压,若遇到不可运行的问题,可参考ht...原创 2018-06-06 21:41:46 · 2436 阅读 · 2 评论 -
简易版RaspberryPi人脸识别
详情见https://github.com/CallonHuang/RaspberryPi_faceDetect/tree/master/faceDetect原创 2017-05-10 10:25:30 · 1007 阅读 · 0 评论 -
Macbook搭建交叉编译工具以及区别
Mac的三种交叉编译链(arm-elf-/arm-none-eabi/arm-none-linux-gnueabi)的安装与使用,并进行了区分.原创 2016-05-03 23:39:36 · 8785 阅读 · 2 评论 -
64位ubuntu16.04搭建嵌入式linux开发环境的奇葩问题
奇葩问题1:选择ubuntu镜像启动安装时,黑屏,使用网上方法去掉3D图形加速也不行宿主机上运行如下命令,重启宿主机netsh winsock reset 奇葩问题2:将交叉编译链路径添加进PATH 后运行arm-none-linux-gnueabi-gcc依然出现:No such file or directorysudo apt-get install lib32ncu...原创 2017-03-01 21:26:13 · 1864 阅读 · 0 评论 -
记找工作中的磕磕碰碰(持续更新)
希望帮助以后找工作的朋友们!原创 2016-09-04 08:30:39 · 1263 阅读 · 0 评论 -
多角度看Binder
学习Linux出于开源和对操作系统的好奇,学了一些源码知识和驱动编写知识,如今面对android,也应该好奇到究其源码的份上,而第一个需要攻克的,是binder。希望可以帮到更多的朋友。原创 2016-07-30 16:06:39 · 988 阅读 · 0 评论 -
从内核驱动到android app
了解android驱动开发。原创 2016-07-14 14:37:00 · 5140 阅读 · 1 评论 -
6410为例的ARM启动linux流程
遇到有很多朋友学习了很久的ARM,会用它的很多功能,却对它的启动流程无从知晓,在此以6410为例,以一幅图总结了这一部分乃至6410启动linux的流程,希望对初学ARM尤其是6410的朋友有所帮助。原创 2016-05-16 20:57:53 · 898 阅读 · 0 评论