树莓派 Zero W 安装与内核驱动开发入门 (3)

这里借一下别人的连线图

image


树莓派 Zero W 安装与内核驱动开发入门


树莓派学习二(点亮LED灯)

讓你的 Raspberry Pi 透過 GPIO 閃爍 LED 燈
Shell C C++ Java Python NodeJS 等语言均有支持GPIO的库,详情谷歌

这里pip换镜像源,不说了我们先一起烧香谢谢方校长:
树莓派使用 Python 驱动 SSD1306(IIC/SPI 通信) 先测试IIC通讯,成功后再去玩 Linux C 编程 实现I2C总线的OLED驱动 - 暮光小猿wzt。

开启色相头

树莓派zero wh使用csi摄像头模块

查看硬件输出信息

如查看 SoC 温度(也就是常说的 CPU)

vcgencmd measure_temp

详见:https://www.raspberrypi.org/documentation/raspbian/applications/vcgencmd.md

正确关机

sudo halt

配置 Web版的 VSCode Server

由于 VSCode SSH Remote 不支持 armhf,所以我们直接用弱一点的 Web 版 VSCode

https://github.com/cdr/code-server/releases
见文档

如果没网,可能是你没在控制面板里把网络共享给树莓派
如果还是没网,可以在windows控制面板把树莓派网卡的 IPV6 关了,IPV4设置为自动获取dchp
然后关闭 MobaXterm 的 SSH 标签页再重新打开,使其重新获取ip
在树莓派测网: ping 114.114.114.114

驱动开发

https://www.raspberrypi.org/documentation/hardware/raspberrypi/bcm2835/README.md

译文:BCM2835
这是树莓派 A, B, B+, the Compute Module 及 Zero 系列所用的博通 CPU 芯片

请参考:
Peripheral specification 参考手册
注:该文档有一些错误,已知错误和一些额外信息可以点这里获取
GPU 文档 及其 开源驱动
ARM1176 processor
ARM1176JZF-S
Also see the Raspberry Pi 2 Model B\'s chip, BCM2836.

Peripheral specification(ARM 外设说明书) 是博通的数据手册,在其文档介绍里可看到这么一行:

The purpose of this datasheet is to provide documentation for these peripherals in sufficient
detail to allow a developer to port an operating system to BCM2835.
There are a number of peripherals which are intended to be controlled by the GPU. These are
omitted from this datasheet. Accessing these peripherals from the ARM is not recommended.

树莓派 Zero W 安装与内核驱动开发入门

总结:

资料名 文件名 网址
CPU 数据手册   BCM2835-ARM-Peripherals.pdf   https://www.raspberrypi.org/documentation/hardware/raspberrypi/bcm2835/BCM2835-ARM-Peripherals.pdf  
CPU 数据手册错误修正与注意   BCM2835 datasheet errata - eLinux.org.mhtml   https://elinux.org/BCM2835_datasheet_errata  
ZeroW 电路原理图(schematics)   rpi_SCH_ZeroW_1p1_reduced.pdf   https://www.raspberrypi.org/documentation/hardware/raspberrypi/schematics/rpi_SCH_ZeroW_1p1_reduced.pdf  
GPU 文档   VideoCoreIV-AG100-R.pdf   https://docs.broadcom.com/docs/12358545  
CPU 开源驱动   Brcm_Android_ICS_Graphics_Stack.tar.gz   https://docs.broadcom.com/docs/12358546  

为方便大家使用,我已经把上面5个资料都打包了,下载地址:Pi_zeroW.zip 更新日期:2021-01-13

以上硬件资料均可在树莓派官网 HardWare 文档 找到

软硬件等更多资料详见:https://www.raspberrypi.org/documentation/

PS. 树莓派 ZeroW 的 CPU 是 BCM2835,该 CPU 内核是 ARM1176 processor 系列里的 ARM1176JZF-S

剩下的就是:看手册/看寄存器/看电路图->写代码了,和普通的 ARM Linux 驱动开发没有什么两样
给个案例:

树莓派底层驱动开发示例(一个简单io口驱动的开发)

树莓派驱动开发实战04:PWM呼吸灯
驱动开发教程: https://ixx.life/categories/树莓派驱动开发实战/

驱动编写教程(非树莓派,但大同小异): [野火]i.MX Linux开发实战指南-驱动章节
开发方式推荐:VSCode + Remote SSH + Linux X64 桌面操作系统(或虚拟机)交叉编译环境 和 NFS 服务 + 树莓派挂载 NFS (当然 树莓派3之类的SSH Remote支持,zeroW不支持只能用 code-server)
在 VSCode 直接调用 Makefile 的方法:https://www.cnblogs.com/yucloud/p/vs_code_config.html#makefile
树莓派挂载 NFS:

# 192.168.12.130 是你的服务器地址,一般是台式/笔记本/虚拟机系统上的 NFS Server mount -t nfs 192.168.12.130:/mnt /media #修改 /etc/fstab 文件,添加以下代码,更多参数见 https://wiki.archlinux.org/index.php/Fstab_(简体中文)#字段定义 192.168.12.130:/mnt /mnt nfs rw

NOTE: 不要在 zeroW 上编译,因为它没有树莓派3 那么好的性能。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwdzdw.html