- 博客(29)
- 资源 (15)
- 收藏
- 关注
原创 用一个宏实现求两个数中的最大数
在面试或者笔试中,经常会碰到“用一个宏实现求两个数中的最大数”这个题目,大家看到这个问题,觉得很容易实现,认为这有什么难度呢,随手就是一个三目运算符表达式; 如果能写出上边这个宏,你这道题的考试就能交差了,然后觉得对自己来说就是随手一写的事儿,那可就大错特错了。因为以上写法的宏定义,虽然也能拿到分数,但是在面试者或者笔试阅卷者看来,你也不过如此,你也只是茫茫人海中平凡的一员。那么对于这道平淡无奇的题目来说,如何给考官一个眼前一亮?...
2022-06-03 17:07:40
841
原创 Ubuntu+Hexo+Github搭建个人博客
Ubuntu+Hexo+Github搭建个人博客目录文章目录目录1. 简介环境2. Git安装及配置2.1 安装Git2.2 创建Git仓库2.3 配置git仓库2.4 添加公钥3. Node安装4. Hexo安装及配置4.1 安装hexo4.2 初始化hexo文件夹4.3 Hexo操作4.4 将git库和hexo链接起来5. 更换主题6. 博客迁移6.1 常规迁移6.2 特殊情况1. 简介...
2020-04-06 11:14:23
582
1
原创 Hexo+Github搭建个人博客
Hexo+Github搭建个人博客目录文章目录目录1. 简介环境简介2. Github仓库创建和配置2.1 创建Git仓库2.2 配置git仓库2.3 把本地公钥添加到github中3. Node安装4. Hexo安装及配置4.1 安装hexo4.2 初始化hexo文件夹4.3 Hexo操作4.4 将git库和hexo链接起来5. 创建博客文章Hexo常用命令6. 更换主题7. 参考文章1....
2020-04-06 11:12:44
666
原创 Linux设备驱动程序学习----3.模块的编译和装载
模块的编译和装载更多内容请参考Linux设备驱动程序学习----目录1. 设置测试系统第1步,要先从kernel.org的镜像网站上获取一个主线内核,并安装到自己的系统中,因为学习驱动程序的编写,最好使用标准内核。第2步,必须在自己的系统中配置并构造好内核树,这样可以得到一个更加健壮的模块装载器,可以使内核的模块要和内核源码树中的目标文件连接。同时也需要这些目标文件存在于内核目录树中。这样...
2019-08-25 22:21:07
318
原创 Linux设备驱动程序学习----2.内核模块与应用程序的对比
内核模块与应用程序的对比更多内容请参考Linux设备驱动程序学习----目录1. 内核模块与应用程序的对比内核模块和应用程序之间的不同之处:大多数中小规模的应用程序是从头到尾执行单个任务,而模块却只是预先注册自己以便服务于将来的某个请求,然后初始化函数立即结束。即模块初始化函数(hello_init)的任务就是为以后调用模块函数预先做准备。模块的退出函数(hello_exit)将在模块...
2019-07-28 11:08:57
411
原创 Linux设备驱动程序学习----1.设备驱动程序简介
设备驱动程序简介更多内容请参考Linux设备驱动程序学习----目录1. 简介 Linux系统的优点是,系统内部实现细节对所有人都是公开的。Linux内核由大量复杂的代码组成,设备驱动程序可以作为进入Linux内核世界大门的切入口。 设备驱动程序在Linux内核中,是一个个独立的黑盒子,在调用内部接口时某个特定硬件做出响应,这些接口隐藏了设备的工作细节。用户的操作通过独立于特定驱动程序...
2019-07-27 10:28:16
217
原创 Linux设备驱动程序学习----目录
目录1.设备驱动程序简介2.内核模块和应用程序的对比3.模块编译和装载4.模块的内核符号表##### 5.模块初始化和关闭##### Linux设备驱动程序学习----6.模块参数##### Linux设备驱动程序学习----7.用户空间编写驱动程序Linux设备驱动程序学习----模块构造快速参考Linux设备驱动程序学习----字符设备驱动程序...
2019-07-20 21:05:42
245
原创 阶段性自我反思及学习动员----2019.07.07
自我反思及学习动员Time is flying! 转眼间,工作已经这么多年了,按理说,在职场经过这么多年时间的洗礼,我也应该被洗成职场老手了;然而事实上,老的只是年龄,技术方面一点也不老,甚至还比不过一个刚入职的职场新人。深刻反思有上述中的不安全感,究其原因,有如下反思:1、缺乏反思;自己在工作、学习中碰到过不少问题,在解决问题之后没有花费时间和精力去做好总结和记录,致使好多碰到过的问题...
2019-07-20 21:02:42
301
原创 Qemu搭建ARM vexpress开发环境(三)----NFS网络根文件系统
Qemu搭建ARM vexpress开发环境(三)----NFS网络根文件系统标签(空格分隔): Qemu ARM Linux经过上一篇《Qemu搭建ARM vexpress开发环境(二)----通过u-boot启动Linux内核》,已经实现了通过u-boot加载Kernel启动开发板,并且挂载根文件系统,本文讲述通过NFS网络挂载根文件系统。通过NFS网络根文件系统,可以实现开发板在通过...
2019-07-01 21:33:31
442
原创 Qemu搭建ARM vexpress开发环境(二)----u-boot启动kernel
Qemu搭建ARM vexpress开发环境(二)----u-boot启动kernel标签(空格分隔): Qemu ARM Linux在上文《Qemu搭建ARM vexpress开发环境(一)》中已经简单讲述了通过Qemu模拟直接启动Linux内核,并挂载SD卡根文件系统的方法,这种方法是直接启动内核,与实际应用中ARM板的启动方式:u-boot、kernel、rootfs有些不同。现在就来...
2019-07-01 21:30:49
644
原创 Qemu搭建ARM vexpress开发环境(一)
Qemu搭建ARM vexpress开发环境(一)标签: Qemu ARM Linux嵌入式开发离不开硬件设备比如:开发板、外设等,但是如果只是想学习研究Linux内核,想学习Linux内核的架构,工作模式,需要修改一些代码,重新编译并烧写到开发板中进行验证,这样未必有些复杂。然而Qemu的使用可以避免频繁在开发板上烧写版本,如果进行与外设无关,仅仅是内核方面的调试,Qemu模拟ARM开发环...
2018-10-07 20:35:41
1950
原创 Linux内核设计与实现----Linux内核简介
先占个位置,以后再补充欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B
2018-01-13 18:34:21
262
原创 ctags-vim代码间快速跳转
ctags–vim中代码间快速跳转1、说明在Linux环境下使用vim进行驱动程序编写和维护的时候,会经常需要调用Linux内核的函数或宏定义,在驱动程序和kernel代码之间频繁跳转是件很繁琐的事,使用ctags包可以轻松实现函数或宏定义的跳转。2、配置方法假设:系统中已经安装ctags。 举例: 以在Linux内核代码linux-3.5创建tags为例,建议先将linux-3.5内核代码
2017-12-05 19:35:35
612
原创 RaspberryPi2B使用bcm2835c库控制GPIO
RaspberryPi2B使用bcm2835c库控制GPIO网上有很多RaspberryPi控制GPIO的方法,有Python、WiringPi、bcm2835 C library使用bcm2835 C库控制GPIO时,发现不管怎么设置,GPIO都没有反应,没有输出控制的值。
2017-12-05 19:16:32
1104
原创 Hi3518EV200平台ADC多通道采样
Hi3518EV200平台ADC多通道采样流程Hi3518EV200 ADC本文针对Hi3518EV200平台处理器,通过ADC单次采样方式,实现对多通道(1~4通道)ADC进行采样控制。本文仅仅是对Hi3518EV200芯片ADC的用法的介绍,不涉及ADC具体的工作原理、转换原理等细节内容。废话不多说,直入正题!
2017-11-22 18:59:00
4434
原创 Hi3518EV200平台直接操作GPIO输入或输出高低电平
在系统启动完成后,不加载GPIO相关驱动,不启动应用程序时,可以通过使用himm工具直接操作寄存器,控制GPIO设置为输入,或者设置为输出,可以设置输出高、低电平
2017-05-18 19:21:12
5751
1
原创 Tiny4412 ARM开发环境搭建—Minicom串口工具安装及配置
Tiny4412 ARM开发环境搭建Tiny4412 ARM开发环境搭建简介在64位系统上安装32位的库安装工具1 安装及配置串口工具以Minicom为例11 Windows系统连接串口12 Linux系统连接串口13 虚拟机Linux系统连接串口1. 简介2. 在64位系统上安装32位的库ARM开发板是如果使用的系统是64位的,
2017-01-14 20:44:04
2979
原创 【读书笔记】深度探索 HAL与驱动开发
深度探索 HAL与驱动开发1.1 Android系统架构 Android的系统架构分为4层。 第1层:Linux内核 主要包括Linux的驱动程序以及内存管理、进程管理、电源管理等程序。Android使用Linux2.6作为其内核,不同Android版本的驱动可能并不通用。 主要讲开发第1层的驱动程序,以及再不同Linu
2016-10-08 12:20:48
2396
原创 Ubuntu环境下busybox编译报错处理
Ubuntu环境下busybox编译报错处理:In file included from scripts/kconfig/lxdialog/checklist.c:24:0:scripts/kconfig/lxdialog/dialog.h:31:20: fatal error: curses.h: 没有那个文件或目录compilation terminated.
2016-09-23 08:57:26
887
原创 Tiny4412 ARM开发环境搭建--交叉编译环境搭建
Tiny4412交叉环境搭建交叉编译环境:在PC机(x86平台)上开发程序,在ARM板上运行,提高开发、编译速度。环境:Tiny4412SDK1506开发板需要软件:arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz 检测系统是否已经安装有交叉编译环境:# arm-linux-gcc -vbash: arm-linux-gcc:
2016-07-09 10:38:10
2326
深入浅出数字信号处理[江志红编著][北京航空航天大学出版社][2012.01]
2018-03-10
Linux设备驱动开发详解:基于最新的Linux 4.0内核
2017-03-29
Evernote 100個做筆記的好方法(繁体版)
2017-01-05
TCP-IP详解(卷一、二、三)
2017-01-05
深入理解C指针(带书签完整版)
2017-01-05
自己动手写操作系统(完全版)
2017-01-05
你的第一本思维导图操作书
2017-01-05
构建嵌入式Linux系统
2017-01-05
Exynos 4412 SCP_Users Manual_Ver.0.10.00_Preliminary0
2016-12-21
30天自制操作系统(川合秀实周自恒等扫描版)
2016-12-02
深入理解计算机系统(扫描版)
2016-11-30
Linux设备驱动程序(第3版扫描版)
2016-11-30
Linux内核设计与实现(第三版中文高清带目录扫描版)
2016-11-30
Linux Shell脚本攻略(中文版带书签扫描版)
2016-11-30
Linux命令行与Shell脚本编程大全(第2版扫描版)
2016-11-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人