![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux底层学习
文章平均质量分 78
关于驱动开发和系统移植
LinuxST
相互学习,共同进步。
展开
-
13、STM32MP157A-HDMI移植
STM32MP157A 系列 SoC 中默认没有 HDMI 相关控制器, FS-MP1A 使用 SiI9022 芯片将RGB 信号转化为 HDMI 信号。STM32MP157A 集成 LTDC(LCD-TFT Display Controller),提供一个 24bit RGB 并行接口用于连接到各种 LCD 和 TFT 面板 SiI9022A 是一款 HDMI 传输芯片,适用于高清便携相机、数字相机和个人移动设备,可以灵活的将其他音视频接口转换为 HDMI 或者 DVI 格式。原创 2024-08-31 17:54:00 · 1826 阅读 · 0 评论 -
12、STM32MP157A-有线网卡驱动移植
由于在原内核中并没有 maxio.c 文件的编译选项,这里我们需要在内核中添加对应的编译选项。主要涉及 drivers/net/phy/目录下的 Kconfig 和 Makefile 两个配置文件。在 drivers/net/phy/Kconfig 文件中添加 MAE0621A 驱动的配置项。将phy_device.c 和 maxio.c 文件复制到内核源码下的 drivers/net/phy/目录下。在 drivers/net/phy/Makefile 文件中添加 MAE0621A 驱动的编译项。原创 2024-08-31 17:19:31 · 1390 阅读 · 0 评论 -
11、STM32MP157A-EMMC移植
在内核中 STM32MP1 默认管脚定义在文件 arch/arm/dts/stm32mp15-pinctrl.dtsi 中,查看文件中是否有需要的管脚定义:pins1 {pins2 {pins1 {pins2 {pins3 {pins {pins1 {pins2 {pins1 {pins2 {pins3 {pins {pins {原创 2024-08-17 18:51:38 · 423 阅读 · 0 评论 -
10、STM32MP157ALinux内核配置与
由于添加了新文件需修改 Makefile 才能编译,修改 arch/arm/boot/dts/Makefile,添加stm32mp157a-fsmp1a.dts 的编译选项。将编译好的设备树文件与内核的 uImage 文件,复制到 ubuntu 主机的/tftpboot 文件夹下,当使用 tftp 方式下载内核与设备树文件时会用到。编译完成后会在 arch/arm/boot/dts/目录下生成 stm32mp157a-fsmp1a.dtb 文件。若未安装请看uboot移植文章中安装工具链步骤。原创 2024-08-17 18:31:21 · 345 阅读 · 0 评论 -
9、Linux源码目录
顶层目录的 Makefile 是整个内核配置编译的核心文件,负责组织目录树中子目录的编译管理,还可以设置体系结构和版本号等。原创 2024-08-17 17:42:40 · 532 阅读 · 0 评论 -
8、uboot源码目录概述
此文件夹为 uboot 配置文件夹,uboot 是可配置的,但是你要是自己从头开始一个一个项目的配置,那就太麻烦了,因此一般半导体或者开发板厂商都会制作好一个配置文件。我们可以在这个做好的配置文件基础上来添加自己想要的功能,这些半导体厂商或者开发板厂商制作好的配置文件统一命名为“xxx_defconfig”,xxx 表示开发板名字,这些 defconfig 文件都存放在configs 文件夹,因此,ST 官方开发板配置文件肯定也在这个文件夹中。另外“cpu”这个文件夹也是和 cpu架构有关的。原创 2024-08-17 17:13:01 · 288 阅读 · 0 评论 -
7、STM32MP157a-u-boot移植(TrustMode-Trusted Firmware-A)
在 U-Boot 引导程序中,“安全模式”(Secure Boot)和"非安全模式"(Non-Secure Boot)是两种不同的启动模式,它们主要涉及系统启动的安全性和可信度。安全模式通过引入数字签名和可信根来确保启动过程的安全性,适用于需要高度安全性的设备。非安全模式则跳过了这些验证步骤,提供了更大的灵活性和简便性,但也面临更高的安全风险。原创 2024-08-17 16:41:46 · 773 阅读 · 2 评论 -
6、STM32MP157a-u-boot移植(BaseMode)
点击此链接直接下载:https://developer.arm.com/-/media/Files/downloads/gnu-a/10.3-2021.07/binrel/gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf.tar.xz?修改 arch/arm/dts/stm32mp157a-fsmp1a-u-boot.dtsi 文件,调整启动通道。修改 arch/arm/dts/stm32mp15xx-fsmp1x.dtsi 文件。原创 2024-08-17 14:38:58 · 932 阅读 · 0 评论 -
5、ctags配置与taglist插件安装
经过以上配置后,用vim打开一个文件然后输入:TlistOpen即可。最后一行添加:(路径为 tags所在的绝对路径)完成之后可以在此目录下看到文件:tags。原创 2024-08-17 13:53:52 · 243 阅读 · 0 评论 -
4、设备树(DT)
在传统 Linux 内核中,ARM 架构的板极硬件细节过多地被硬编码在 arch/arm/plat-xxx 和arch/arm/mach-xxx,比如板上的 platform 设备、resource、i2c_board_info、spi_board_info 以及各种硬件的 platform_data,这些板级细节代码对内核来讲只不过是垃圾代码。而采用Device Tree 后,许多硬件的细节可以直接透过它传递给 Linux,而不再需要在 kernel 中进行大量的冗余编码。原创 2024-08-14 19:39:20 · 899 阅读 · 0 评论 -
3、uboot启动概述
因为STM32MP1在片内的ROM中有自己的专有ROM代码,所以可以删除这一部分,然后BL2是要执行的第一个TF-A二进制文件,BL2(受信任的引导固件)负责加载下一阶段的映像(安全和非安全)。STM32MP157是判断是否在第一个核上运行、是否启动M核、是否RMA、是否ENGI,这些对我们来说都不太重要,默认它一路绿灯就好了,重点要关注红框中的。,复位后STM32MP157内部的两个A核执行相同的程序,由于ROM Code中进行了判断,所以ROM Code只在Core0上运行。BL2 跳转到BL32。原创 2024-08-14 19:33:29 · 848 阅读 · 0 评论 -
2、ST 固件烧写(uboot 内核 文件系统)
当我们编译了自己的一些镜像后,需要将其下载到开发板中运行的时候,可以使用此方式将开发板上的分区通过 USB 使用 ums 工具映射到虚拟机中的 ubuntu 系统中。首先需要使用 MobaXterm 连接上调试串口,在系统的启动过程中会出现 1 秒的倒计时,在倒计时结束之前按下键盘任意键即可将程序停留在 bootloader 的控制终端。在控制台使用 ums 0 mmc 0 命令可以将开发板上的 sdcard 分区映射到 PC 上,然后再由PC 将设备连接到虚拟机当中的 ubuntu 系统。原创 2024-08-14 19:31:14 · 274 阅读 · 0 评论 -
1、Linux嵌入式开发环境搭建
这里的磁盘大小尽量大一些,以后对Ubuntu进行一些配置会占比较多的空间,我一般选择200GB,这里选200GB,并不会占你主机太多空间(说实话,和你默认选20GB也差不多),然后选择"将虚拟磁盘拆分成多个文件(M)",点击下一步。选择第一个"Erase disk and install Ubuntu" ,这里的"擦除磁盘并安装Ubuntu"并不会影响到你的宿主机,不用担心会清空的你磁盘,然后点击"Install Now"12)、compareit,比较插件,可以用于比较两个文件的差异。原创 2024-08-14 19:25:30 · 714 阅读 · 0 评论 -
嵌入式知识总结【目录】
嵌入式知识总结(框架)原创 2023-02-08 20:13:05 · 63 阅读 · 1 评论