I.MX6ULL裸机驱动开发四种方式总结

本文总结了四种I.MX6ULL裸机驱动开发方式:纯汇编、汇编+C语言混合、STM32风格及移植官方SDK。尽管都需要汇编启动头文件,但各自特点不同。纯汇编简洁但复杂控制受限;STM32风格需构造外设结构体;移植SDK则简化了驱动编写。了解这些方法有助于选择最佳驱动方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习裸机驱动开发也有一阵子,终于是把几种裸机驱动方法学完了,总体来说难度并不大。因为毕竟有基础在,能大概看懂数据手册和知道如何是控制寄存器。

驱动方法目前所学共有四种:

        1.纯汇编驱动

        2.汇编驱动头文件,剩下的使用C语言来驱动

        3.模仿STM32的方式来进行驱动

        4.移植NXP的官方SDK来进行驱动

四种方法有共同点和不同点,下面我来 一 一总结:

共同点:

        1.无论怎么样,都必须使用汇编语言来启动头文件。选择了启动方式之后如果不使用汇编语言来启动头文件,任你后面的代码再怎么写你也驱动不了开发板。驱动代码对于接下来的所有方法都是相同的!

        2.编译程序的步骤都是大同小异的。第一步先把软件代码写好,第二步将.C(源文件) .S(汇编文件)文件转换为.O(已编译不可执行)文件。第三步将所有的.O文件链接为elf格式的可执行文件。最后将.elf文件转换成.bin文件。这个.bin文件会和头文件一起被写入你所选择的启动方式里面去。我建议还可以在这里再加上一步,反汇编elf文件。为什么呢?因为反汇编最重要的就是可以看到你文件的开头文件,一定要是.S文件开头,只有汇编文件开头启动一些外设,其他文件才有写入的可能!       

        下面附上:个C语言代码源文件需要经过如图四个步骤,才能变成可以被计算机执行的文件。

         3.Makefile。这个肯定是毋庸置疑很好用的make工具。使用它可以省去很多的操作步骤和少些很多的代码。而且如果需要修改一部分链接文件的代码,可以直接修改,然后编译。如果不使用,修改.C .S文件之后,又要重新走一遍编译程序的步骤,很繁琐不建议!而且最重要的一天,以后要学习的大头:系统移植和uboot都是要经常使用Makefile的!

CROSS_COMPILE ?= arm-linux-gnueabihf-
NAME          ?= ledc                          //如果以后其他模块需要使用,只需要改名字就好了

CC            := $(CROSS_COMPILE)gcc
LD            := $(CROSS_COMPILE)ld
OBJCOPY       :
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

godfatherlzq

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值