- 博客(131)
- 资源 (6)
- 收藏
- 关注
原创 鸿蒙移植随笔
STM32MP157—鸿蒙Liteos_a移植随笔硬件平台:韦东山嵌入式Linxu开发板(STM32MP157)软件平台:运行于VMware Workstation Pro 下 UbuntuLTS18.04_x64 系统目录 STM32MP157—鸿蒙Liteos_a移植随笔第一章 串口移植1.1 Liteos_a串口架构分析1.1.1 内核打印函数实现1.1.2 APP控制台打印1.1.2.1 建立联系1.1.2.2 uart与具体的dev1.2 uart串口架构第二章 GenericT..
2021-07-02 16:11:10 791 9
转载 Linux内核学习——5. 互斥量的实现
互斥量的实现软件平台:运行于VMware Workstation 12 Player下UbuntuLTS16.04_x64 系统参考资料:【原创】Linux Mutex机制分析 - LoyenWang - 博客园 (cnblogs.com)开发环境:Linux 3.4.2内核、arm-linux-gcc 4.3.2工具链目录 互斥量的实现5、互斥量mutex的实现5.1 互斥量mutex的内核数据结构5.2 mutex_lock()函数的实现3.2 加锁流程分析3.2.1 fast-path.
2021-07-02 15:54:57 563
原创 Linux内核学习——4. 信号量的实现
信号量的实现软件平台:运行于VMware Workstation 12 Player下UbuntuLTS16.04_x64 系统开发环境:Linux 3.4.2内核、arm-linux-gcc 4.3.2工具链目录 信号量的实现4、信号量semaphore的实现4.1 信号signal与信号量semaphore4.2 信号量semaphore的内核数据结构4.3 down()函数实现4.4 up()函数的实现4.5 up()如何唤醒调用down()休眠的进程4、信号量semaphore的实.
2021-07-02 15:51:52 585
原创 Linux内核学习——3. 自旋锁的实现
自旋锁的实现软件平台:运行于VMware Workstation 12 Player下UbuntuLTS16.04_x64 系统开发环境:Linux 3.4.2内核、arm-linux-gcc 4.3.2工具链目录 自旋锁的实现3、自旋锁spinlock的实现3.1 spinlock的通俗理解3.2 spinlock的数据结构spinlock_t3.2.1 分析3.2.2 总结3.3 spinlock在UP系统的实现3.3.1 spin_lock():要明确知道该锁不会在中断处理程序中使用3..
2021-07-02 15:47:39 1134 3
原创 Linux内核学习——2. 原子操作
原子操作软件平台:运行于VMware Workstation 12 Player下UbuntuLTS16.04_x64 系统开发环境:Linux 3.4.2内核、arm-linux-gcc 4.3.2工具链目录 原子操作2、原子操作2.1 原子变量在内核中的体现2.2 原子变量的内核实现2.2.1 ATOMIC_OPS 在 UP 系统中的实现2.2.2 ATOMIC_OPS 在 SMP 系统中的实现2.3 原子位在内核中的体现2.4 原子位在内核中的实现2.4.1 原子位在UP系统中的.
2021-07-02 15:34:06 805 6
原创 Linux内核学习——1. 内联汇编
内联汇编软件平台:运行于VMware Workstation 12 Player下UbuntuLTS16.04_x64 系统开发环境:Linux 3.4.2内核、arm-linux-gcc 4.3.2工具链目录 内联汇编1、内联汇编1.1 语法1.2 编写实现加法1.2.1 传统方式1.2.2 汇编方式1.2.3 使用内联汇编方式1.2.4 加入earlyclobbe方式1、内联汇编1.1 语法asm asm-qualifiersasm ( AssemblerTemplate .
2021-07-02 15:09:19 553
原创 趣谈Linux操作系统随笔——7.0 进程的数据结构
进程的数据结构软件平台:运行于VMware Workstation 12 Player下UbuntuLTS16.04_x64 系统开发环境:Linux-4.19-rc3内核,glibc-2.9目录 进程的数据结构1、项目列表描述——`tasks`2、任务ID3、信号处理4、任务状态5、进程调度6、运行统计信息7、进程的亲缘关系8、进程的权限9、内存管理10、文件与文件系统11、(看不懂)用户态函数栈内核态函数栈通过task_struct找内核栈通过内核栈找task_struct总结时刻附录:`.
2021-05-25 17:56:38 223
原创 趣谈Linux操作系统随笔——6.0 线程:如何让复杂的项目并行执行
线程:如何让复杂的项目并行执行软件平台:运行于VMware Workstation 12 Player下UbuntuLTS16.04_x64 系统开发环境:Linux-4.19-rc3内核,glibc-2.9目录 线程:如何让复杂的项目并行执行1、简单线程的编写与逻辑顺序2、添加锁机制后的程序编写与逻辑顺序3、添加条件变量后的程序编写与逻辑顺序4、总结1、简单线程的编写与逻辑顺序其逻辑图如下所示:代码如下:#include <stdio.h>#include .
2021-05-25 17:54:44 138
原创 趣谈Linux操作系统随笔——5.0 进程:公司接这么多项目,如何管
进程:公司接这么多项目,如何管软件平台:运行于VMware Workstation 12 Player下UbuntuLTS16.04_x64 系统开发环境:Linux-4.19-rc3内核,glibc-2.9目录 进程:公司接这么多项目,如何管1、编译—程序的二进制格式(.o ELF文件的第一种格式)1.1 生成方式1.2 文件格式(存储方式)1.3 每个节的含义2、静态链接生成的可执行文件(ELF第二种格式)2.1 生成方式2.2 文件格式(存储方式)2.3 静态链接库的缺点3、动态链接库——.
2021-05-25 17:52:35 138 6
原创 趣谈Linux操作系统随笔——4.0 系统调用:公司成立好了就要开始接项目
系统调用:公司成立好了就要开始接项目软件平台:运行于VMware Workstation 12 Player下UbuntuLTS16.04_x64 系统开发环境:Linux-4.19-rc3内核,glibc-2.9目录 系统调用:公司成立好了就要开始接项目1、系统调用的封装——glibc2、32位系统调用过程2.1 执行32位对应的`DO_CALL`2.2 在DO_CALL中陷入内核ENTER_KERNEL2.3 小结3、64位系统调用过程3.1 执行64位对应的`DO_CALL`3.2 在`.
2020-11-24 11:56:39 274
原创 趣谈Linux操作系统随笔——3.0 内核初始化:生意做大了就得成立公司
内核初始化:生意做大了就得成立公司软件平台:运行于VMware Workstation 12 Player下UbuntuLTS16.04_x64 系统开发环境:Linux-4.19-rc3内核目录 内核初始化:生意做大了就得成立公司1、内核启动函数star_kernel() 初步分析1.1 0号进程(idle)初始化`set_task_stack_end_magic(&init_task)`1.2 页地址初始化、打印版本信息、设置架构......1.3 中断门初始化` trap_ini.
2020-11-24 11:47:53 282 2
原创 趣谈Linux操作系统随笔——2.0 从BIOS到bootloader:创业伊始,有活儿老板自己上
从BIOS到bootloader:创业伊始,有活儿老板自己上软件平台:运行于VMware Workstation 12 Player下UbuntuLTS16.04_x64 系统开发环境:Linux-4.19-rc3内核目录 从BIOS到bootloader:创业伊始,有活儿老板自己上一、BIOS启动(实模式)二、bootloader启动(实模式-->保护模式)三、实模式切换到保护模式的具体工作( lzma_decompress.img)四、选择操作系统(kernel.img)五、启动操作.
2020-11-24 11:42:39 374
原创 趣谈Linux操作系统随笔——1.0 x86架构:有了开放的架构,才能打造开放的营商环境
x86架构:有了开放的架构,才能打造开放的营商环境软件平台:运行于VMware Workstation 12 Player下UbuntuLTS16.04_x64 系统开发环境:Linux-4.19-rc3内核目录 x86架构:有了开放的架构,才能打造开放的营商环境1、x86架构的由来2、地址总线与数据总线的理解3、8086几个寄存器4、变为32位后的改变 寄存器拓展与模式切换1、x86架构的由来 IBM公司一开始做IBM计算机时候,使用的是英特尔的8088芯片制作的,随后.
2020-11-24 11:36:09 270
原创 第三阶段应用层——2.13 视频监控—mjpg-streamer客户端的编写
视频监控—mjpg-streamer客户端的编写硬件平台:韦东山嵌入式Linxu开发板(S3C2440.v3)软件平台:运行于VMware Workstation 12 Player下UbuntuLTS16.04_x64 系统开发环境:arm-linux-gcc-4.3.2工具链、linux-3.4.2内核(开发版根文件系统)源码仓库:https://gitee.com/d_1254436976/Embedded-Linux-Phase-3目录 视频监控—mjpg-streamer客户端的.
2020-08-12 15:37:44 841
原创 第三阶段应用层——2.12 视频监控—mjpg-streamer源码分析(2)-主、输入、输出进程
视频监控—mjpg-streamer源码分析(2)-主、输入、输出进程硬件平台:韦东山嵌入式Linxu开发板(S3C2440.v3)软件平台:运行于VMware Workstation 12 Player下UbuntuLTS16.04_x64 系统开发环境:arm-linux-gcc-4.3.2工具链、linux-3.4.2内核(开发版根文件系统)源码仓库:https://gitee.com/d_1254436976/Embedded-Linux-Phase-3目录 视频监控—mjpg-s.
2020-08-11 20:31:38 297
原创 第三阶段应用层——2.12 视频监控—mjpg-streamer源码分析(1)-框架
视频监控—mjpeg-streamer源码分析(1)-框架硬件平台:韦东山嵌入式Linxu开发板(S3C2440.v3)软件平台:运行于VMware Workstation 12 Player下UbuntuLTS16.04_x64 系统开发环境:arm-linux-gcc-4.3.2工具链、linux-3.4.2内核(开发版根文件系统)源码仓库:https://gitee.com/d_1254436976/Embedded-Linux-Phase-3目录 视频监控—mjpeg-stream.
2020-08-11 15:36:53 574
原创 第三阶段应用层——2.11 视频监控—ASOC驱动框架的简单分析
视频监控—ASOC驱动框架的简单分析硬件平台:韦东山嵌入式Linxu开发板(S3C2440.v3)软件平台:运行于VMware Workstation 12 Player下UbuntuLTS16.04_x64 系统开发环境:arm-linux-gcc-4.3.2工具链、linux-3.4.2内核(开发版根文件系统)源码仓库:https://gitee.com/d_1254436976/Embedded-Linux-Phase-3目录 视频监控—ASOC驱动框架的简单分析一、ASOC框架分析.
2020-08-10 22:09:21 325
原创 第三阶段应用层——2.10 视频监控—ALSA驱动层框架的简单分析
视频监控—ALSA驱动框架的简单分析硬件平台:韦东山嵌入式Linxu开发板(S3C2440.v3)软件平台:运行于VMware Workstation 12 Player下UbuntuLTS16.04_x64 系统参考资料:OV7740_CSP_DS_1.51 datasheet、S3C2440 datasheet开发环境:arm-linux-gcc-4.3.2工具链、linux-3.4.2内核(开发版根文件系统)源码仓库:https://gitee.com/d_1254436976/Emb.
2020-08-10 18:56:26 433
原创 第三阶段应用层——2.9 视频监控—WM8976声音解码的裸板程序的实现
视频监控—WM8976声音解码的裸板程序的实现硬件平台:韦东山嵌入式Linxu开发板(S3C2440.v3)软件平台:运行于VMware Workstation 12 Player下UbuntuLTS16.04_x64 系统参考资料:OV7740_CSP_DS_1.51 datasheet、S3C2440 datasheet开发环境:Linux-4.13.0-41内核(虚拟机)、arm-linux-gcc-4.3.2工具链、linux-3.4.2内核(开发版根文件系统)源码仓库:https:.
2020-08-06 22:27:15 638
原创 第三阶段应用层——2.8 视频监控—开发板上WIFI网卡的使用(3)-仿手机功能写WIFI程序
视频监控—开发板上WIFI网卡的使用(3)-仿手机功能写WIFI程序硬件平台:韦东山嵌入式Linxu开发板(S3C2440.v3),无线WIFI网卡(RT3070)软件平台:运行于VMware Workstation 12 Player下UbuntuLTS16.04_x64 系统参考资料:OV7740_CSP_DS_1.51 datasheet、S3C2440 datasheet开发环境:Linux-4.13.0-41内核(虚拟机)、arm-linux-gcc-4.3.2工具链、linux-3.
2020-08-05 20:48:37 579
原创 第三阶段应用层——2.8 视频监控—开发板上WIFI网卡的使用(2)-AP模式
视频监控—开发板上WIFI网卡的使用(2)-AP模式硬件平台:韦东山嵌入式Linxu开发板(S3C2440.v3),无线WIFI网卡(RT3070)软件平台:运行于VMware Workstation 12 Player下UbuntuLTS16.04_x64 系统参考资料:OV7740_CSP_DS_1.51 datasheet、S3C2440 datasheet开发环境:Linux-4.13.0-41内核(虚拟机)、arm-linux-gcc-4.3.2工具链、linux-3.4.2内核(开.
2020-08-04 20:26:21 860
原创 第三阶段应用层——2.8 视频监控—开发板上WIFI网卡的使用(1)-STA模式
视频监控—开发板上WIFI网卡的使用硬件平台:韦东山嵌入式Linxu开发板(S3C2440.v3),OV7740摄像头软件平台:运行于VMware Workstation 12 Player下UbuntuLTS16.04_x64 系统参考资料:OV7740_CSP_DS_1.51 datasheet、S3C2440 datasheet开发环境:Linux-4.13.0-41内核(虚拟机)、arm-linux-gcc-4.3.2工具链、linux-3.4.2内核(开发版根文件系统)源码仓库:h.
2020-08-04 17:58:10 401
原创 第三阶段应用层——2.7 视频监控—从零写CMOS摄像头驱动
视频监控—从零写CMOS摄像头驱动硬件平台:韦东山嵌入式Linxu开发板(S3C2440.v3),OV7740摄像头软件平台:运行于VMware Workstation 12 Player下UbuntuLTS16.04_x64 系统参考资料:OV7740_CSP_DS_1.51 datasheet、S3C2440 datasheet开发环境:Linux-4.13.0-41内核(虚拟机)、arm-linux-gcc-4.3.2工具链、linux-3.4.2内核(开发版根文件系统)源码仓库:ht.
2020-07-31 23:31:59 1993
原创 第三阶段应用层——2.6 视频监控—CMOS摄像头的硬件原理
视频监控—CMOS摄像头的硬件原理硬件平台:韦东山嵌入式Linxu开发板(S3C2440.v3)软件平台:运行于VMware Workstation 12 Player下UbuntuLTS16.04_x64 系统参考资料:OV7740_CSP_DS_1.51手册开发环境:Linux-4.13.0-41内核(虚拟机)、arm-linux-gcc-4.3.2工具链、linux-3.4.2内核(开发版根文件系统)源码仓库:https://gitee.com/d_1254436976/Embedde.
2020-07-29 20:38:30 1248
原创 第三阶段应用层——2.5 视频监控—在LCD上显示摄像头图像
视频监控—在LCD上显示摄像头图像硬件平台:韦东山嵌入式Linxu开发板(S3C2440.v3)软件平台:运行于VMware Workstation 12 Player下UbuntuLTS16.04_x64 系统参考资料:USB_Video_Example 1.5、UVC 1.5 Class specification开发环境:Linux-4.13.0-41内核(虚拟机)、arm-linux-gcc-4.3.2工具链源码仓库:https://gitee.com/d_1254436976/Em.
2020-07-28 23:35:46 1325
原创 第三阶段应用层——2.4 视频监控—从0写USB摄像头驱动(3)-实现数据传输(完善)
视频监控—从0写USB摄像头驱动(3)-实现数据传输(完善)硬件平台:韦东山嵌入式Linxu开发板(S3C2440.v3)软件平台:运行于VMware Workstation 12 Player下UbuntuLTS16.04_x64 系统参考资料:USB_Video_Example 1.5、UVC 1.5 Class specification开发环境:Linux-4.13.0-41内核(虚拟机)、arm-linux-gcc-4.3.2工具链源码仓库:https://gitee.com/d_.
2020-07-26 00:10:28 1078 1
原创 第三阶段应用层——2.4 视频监控—从0写USB摄像头驱动(2)-实现数据传输(初步)
视频监控—从0写USB摄像头驱动(2)-实现数据传输(初步)硬件平台:韦东山嵌入式Linxu开发板(S3C2440.v3)软件平台:运行于VMware Workstation 12 Player下UbuntuLTS16.04_x64 系统参考资料:USB_Video_Example 1.5、UVC 1.5 Class specification开发环境:Linux-4.13.0-41内核(虚拟机)、arm-linux-gcc-4.3.2工具链源码仓库:https://gitee.com/d_.
2020-07-23 17:49:47 1237
原创 Git——本地工程误删的恢复操作—后悔药
记录自己的一次马大哈:在把本地工程上传到gitee时,不小心把本地工程误删了。具体步骤:误删工程的目录下运行Git Bash Here执行git reflog,输出所有分支的所有操作记录,包括已经被删除的 commit 记录和 reset 的操作找到丢失前的commit那一步的HEAD@{n},输入 git reset --hard HEAD@{n}下面是详细介绍:恢复方法1、运行Git Bash Here在误删工程的目录下运行Git Bash Here,进入如下界面2、输入git
2020-07-23 14:50:12 1707
原创 第三阶段应用层——2.4 视频监控—从0写USB摄像头驱动(1)-描述符的分析与打印
视频监控—从0写USB摄像头驱动(1)-描述符的分析与打印硬件平台:韦东山嵌入式Linxu开发板(S3C2440.v3)软件平台:运行于VMware Workstation 12 Player下UbuntuLTS16.04_x64 系统参考资料:USB_Video_Example 1.5、UVC 1.5 Class specification开发环境:Linux-4.13.0-41内核(虚拟机)、arm-linux-gcc-4.3.2工具链源码仓库:https://gitee.com/d_1.
2020-07-21 21:49:15 1139
原创 第三阶段应用层——2.3 视频监控—uvc驱动框架分析
视频监控—uvc驱动框架分析硬件平台:韦东山嵌入式Linxu开发板(S3C2440.v3)软件平台:运行于VMware Workstation 12 Player下UbuntuLTS16.04_x64 系统参考资料:USB_Video_Example 1.5、UVC 1.5 Class specification开发环境:Linux-3.4.2内核、arm-linux-gcc-4.3.2工具链、源码分析版本为:Linux-2.6.31.14源码仓库:https://gitee.com/d_1.
2020-07-20 22:08:47 994
原创 第三阶段应用层——2.2 视频监控—根据虚拟驱动vivi的使用过程彻底分析摄像头驱动
视频监控—根据虚拟驱动vivi的使用过程彻底分析摄像头驱动硬件平台:韦东山嵌入式Linxu开发板(S3C2440.v3)软件平台:运行于VMware Workstation 12 Player下UbuntuLTS16.04_x64 系统参考资料:Video for Linux Two - Driver Writer’s Guide、《Android驱动开发权威指南》开发环境:Linux 3.4.2内核、arm-linux-gcc 4.3.2工具链源码仓库:https://gitee.com/.
2020-07-20 01:04:31 621
原创 第三阶段应用层——2.1 视频监控—V4L2框架的简单分析
视频监控—V4L2框架的简单分析硬件平台:韦东山嵌入式Linxu开发板(S3C2440.v3)软件平台:运行于VMware Workstation 12 Player下UbuntuLTS16.04_x64 系统参考资料:Video for Linux Two - Driver Writer’s Guide、《Android驱动开发权威指南》开发环境:Linux 3.4.2内核、arm-linux-gcc 4.3.2工具链源码仓库:https://gitee.com/d_1254436976/.
2020-07-19 16:47:07 1225
原创 Linux下Doxgen的安装与使用
Linux下Doxgen的安装与使用软件平台:运行于VMware Workstation 12 Player下UbuntuLTS16.04_x64 系统参考资料:【Doxgen的注释】、【才鲸 / 嵌入式编程技巧】开发环境:Linux 3.4.2内核、arm-linux-gcc 4.3.2工具链目录 Linux下Doxgen的安装与使用一、安装1、网络安装2、压缩包安装二、使用1、注释2、配置文件与说明文件的生成2.1 采用官方默认配置文件2.2 自定义配置文件三、实践一、安装1、网络.
2020-07-17 17:37:46 1141 1
原创 第三阶段应用层——1.13 数码相册—梳理与总结
数码相册—总结与归纳硬件平台:韦东山嵌入式Linxu开发板(S3C2440.v3)软件平台:运行于VMware Workstation 12 Player下UbuntuLTS16.04_x64 系统参考资料:《嵌入式Linux应用开发手册》、《嵌入式Linux应用开发手册第2版》开发环境:Linux 3.4.2内核、arm-linux-gcc 4.3.2工具链目录数码相册—总结与归纳...
2020-07-17 17:36:23 542
原创 第三阶段应用层——1.12 数码相册—interval_page设置时间间隔界面的显存管理、页面规划、输入控制
数码相册——设置时间间隔界面的显存管理、页面规划、输入控制硬件平台:韦东山嵌入式Linxu开发板(S3C2440.v3)软件平台:运行于VMware Workstation 12 Player下UbuntuLTS16.04_x64 系统参考资料:《嵌入式Linux应用开发手册》、《嵌入式Linux应用开发手册第2版》开发环境:Linux 3.4.2内核、arm-linux-gcc 4.3.2工具链目录 数码相册——设置时间间隔界面的显存管理、页面规划、输入控制一、前言二、interval_.
2020-07-13 18:43:26 354
原创 第三阶段应用层——1.11 数码相册—setting_page设置页面的显存管理、页面规划、输入控制
数码相册——setting_page主界面的显存管理、页面规划、输入控制硬件平台:韦东山嵌入式Linxu开发板(S3C2440.v3)软件平台:运行于VMware Workstation 12 Player下UbuntuLTS16.04_x64 系统参考资料:《嵌入式Linux应用开发手册》、《嵌入式Linux应用开发手册第2版》开发环境:Linux 3.4.2内核、arm-linux-gcc 4.3.2工具链目录 数码相册——setting_page主界面的显存管理、页面规划、输入控制一.
2020-07-13 18:42:36 524
原创 第三阶段应用层——1.10 数码相册—main_page主界面的显存管理、页面规划、输入控制
数码相册——main_page显存管理硬件平台:韦东山嵌入式Linxu开发板(S3C2440.v3)软件平台:运行于VMware Workstation 12 Player下UbuntuLTS16.04_x64 系统参考资料:《嵌入式Linux应用开发手册》、《嵌入式Linux应用开发手册第2版》、【bitmap格式分析】开发环境:Linux 3.4.2内核、arm-linux-gcc 4.3.2工具链目录 数码相册——main_page显存管理对于页面的显示,LCD与Framebuf.
2020-07-10 16:45:22 756 2
原创 第三阶段应用层——1.9 数码相册—在LCD上显示BMP图片
数码相册——在LCD上显示BMP图片硬件平台:韦东山嵌入式Linxu开发板(S3C2440.v3)软件平台:运行于VMware Workstation 12 Player下UbuntuLTS16.04_x64 系统参考资料:《嵌入式Linux应用开发手册》、《嵌入式Linux应用开发手册第2版》开发环境:Linux 3.4.2内核、arm-linux-gcc 4.3.2工具链目录 数码相册——在LCD上显示BMP图片bmp二进制文件格式存储的像素是从图片的左下角开始,从左往右一行一行的.
2020-07-08 01:20:14 957
原创 第三阶段应用层——1.8 数码相册—在LCD上显示JPG图片
数码相册——在LCD上显示JPG图片硬件平台:韦东山嵌入式Linxu开发板(S3C2440.v3)软件平台:运行于VMware Workstation 12 Player下UbuntuLTS16.04_x64 系统参考资料:《嵌入式Linux应用开发手册》、《嵌入式Linux应用开发手册第2版》开发环境:Linux 3.4.2内核、arm-linux-gcc 4.3.2工具链目录 数码相册——在LCD上显示JPG图片一、前期准备1、解压libjpeg库2、配置3、安装库4、移动头文件和库文.
2020-07-06 19:43:57 458
第一章 计算机系统概述.xmind
2020-04-14
第四章 计算机中断技术.xmind
2020-04-14
第七章 人机接口.xmind
2020-04-14
第六章 AD转换器.xmind
2020-04-14
第八章 总线.xmind
2020-04-14
第二章 存储器.xmind
2020-02-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人