- 博客(14)
- 收藏
- 关注
原创 嵌入式Linux裸机开发笔记5(IMX6ULL)—BSP工程管理实验(2)
编译的.o 文件存放到哪里?使用到的编译命令和前面实验使用的一样,其实 Makefile 的重点工作就是解决“从哪里来到哪里去的”问题,也就是找到要编译的源文件、编译结果存放到哪里?第 31 行的 VPATH 是指定搜索目录的,这里指定的搜素目录就是变量 SRCDIRS 所保存的目录,这样当编译的时候所需的.S 和.c 文件就会在 SRCDIRS 中指定的目录中查找。第 24 和 25 行的变量 SFILENDIR 和 CFILENDIR 包含所有的.S 汇编文件和.c 文件,相比变。
2023-12-12 10:55:24
683
原创 嵌入式Linux裸机开发笔记5(IMX6ULL)—BSP工程管理实验(1)
在前面的笔记中,我们都是将所有的源码文件放到工程的根目录下,如果工程文件比较少的话这样做无可厚非,但是如果工程源文件达到几十、甚至数百个的时候,这样一股脑全部放到根目录下就会使工程显得混乱不堪。所以我们必须对工程文件做管理,将不同功能的源码文件放到不同的目录中。另外我们也需要将源码文件中,所有完成同一个功能的代码提取出来放到一个单独的文件中,也就是对程序分功能管理。本章我们就来学习一下如何对一个工程进行整理,使其美观、功能模块清晰、易于阅读。
2023-12-11 19:15:48
836
1
原创 嵌入式Linux裸机开发笔记4(IMX6ULL)—模仿 STM32 驱动开发格式实验(2)
在编写寄存器组结构体的时候注意寄存器的地址是否连续,有些外设的寄存器地址可能不是连续的,会有一些保留地址,因此我们需要在结构体中留出这些保留的寄存器。的复用功能就可以通过“IOMUX_SW_MUX->GPIO1_IO03。文件一样,只是函数体写法变了,寄存器的访问采用 imx6ul.h。SW_MUX_CTL_PAD_GPIO1_IO03赋值。的内容和上一章一样,可以直接使用上一章的链接脚本文件。按照地址顺序递增的原理,寄存器 CMEOR。个字节,如果寄存器地址连续的 话应该只差 4。
2023-12-04 09:43:39
245
原创 嵌入式Linux裸机开发笔记4(IMX6ULL)—模仿 STM32 驱动开发格式实验(1)
在上次笔记使用 C 语言编写 LED 灯驱动的时候,每个寄存器的地址我们都需要写宏定义,使用起来非常的不方便。我们在学习 STM32 的时候,可以使用“ GPIOB->ODR ”这种方式来给 GPIOB 的寄存器 ODR 赋值,因为在 STM32 中同属于一个外设的所有寄存器地址基本是相邻的(有些会有保留寄存器)。因此我们可以借助 C 语言里面的结构体成员地址递增的特点来将某个外设的所有寄存器写入到一个结构体里面,然后定义一个结构体指针指向这个外设的寄存器基地址,这样我们就可以通过这个结构体指针来访问。
2023-12-04 09:39:40
267
原创 嵌入式Linux裸机开发笔记3(IMX6ULL)—C语言实现LED实验(2)
通过第 11、13 行代码,.bss 段的起始地址和结束地址就保存在了“__bss_start”和“__bss_end”中,我们就可以直接在汇编或者 C 文件里面使用这两个符号。因此我们需要能够自定义一些段,这些段的起始地址我们可以自由指定,同样的我们也可以指定一个文件或者函数应该存放到哪个段里面去。这两行其实就是对这两个符号进行赋值,其值为定位符“.”,这两个符号用来保存.bss 段的起始地址和结束地址。行对一个特殊符号“.”进行赋值,“.”在链接脚本里面叫做定位计数器,默认的定位计数器为 0。
2023-12-01 10:36:34
114
1
原创 嵌入式Linux裸机开发笔记3(IMX6ULL)—C语言实现LED实验(1)
实际工作中是很少用到汇编去写嵌入式驱动的,毕竟汇编太难,而且写出来也不好理解,大部分情况下都 是使用 C 语言去编写的。语言环境搭建的,当然还有一 些其他的处理,比如中断向量表等等。C 语言文件就是完成我们的业务层代码的,其实就是我们实际例程要完成的功能。
2023-12-01 10:03:21
141
1
原创 嵌入式Linux裸机开发笔记2(IMX6ULL)—汇编LED实验(4)
整体过程下来没出什么奇怪的问题,自己的收获也很多,包括一些编写代码的规范,也看了正点原子的视频,视频里左神也说了更多的细节,我只记录了自己的过程、收获和容易出问题的地方。“运行地址”就是代码运行的时候所处的地址,这个我们在链接的时候就已经确定好了,代码要运行,那就必须处于运行地址处,否则代码肯定运行出错。这个软件叫做 “imxdownload“,本人也是借吃到了正点原子的开源福利,白嫖了这个软件,同时本人很多学习内容也是跟着正点原子的教程进行学习。如果找不到,可以联系我,我发给你。
2023-11-29 12:36:50
534
1
原创 嵌入式Linux裸机开发笔记2(IMX6ULL)—汇编LED实验(3)
上次笔记记录了本人学习IO配置,特别是当IO复用为GPIO时候的配置方法,实际上还是操作寄存器,本次继续记录关于GPIO时钟使能的操作。至此,我们才将IO配置为GPIO,以及GPIO的配置方法才算记录完,下次我们将开始从LED灯的原理图出发,具体讲解GPIO的配置。
2023-11-29 10:11:06
95
1
原创 嵌入式Linux裸机开发笔记2(IMX6ULL)—汇编LED实验(2)
IOMUXC_SW_MUX_CTL_PAD_XX_XX和IOMUXC_SW_PAD_CTL_PAD_XX_XX 这两种寄存器都是配置 IO 的,注意是 IO!通过上面的介绍我们看到通过IO配置寄存器可以设置IO的各种电气属性,但是我们没有看到如何设置 IO 为输入还是输出?
2023-11-28 16:41:35
142
原创 嵌入式Linux裸机开发笔记2(IMX6ULL)—汇编LED实验(1)
上次发布的笔记已经学习了几种常见的汇编指令,已经可以满足我们进行一些ARM汇编实例,本系列笔记默认大家有配置好的ubuntu操作系统,默认使用vscode进行开发,vscode就不多介绍了,总之是一款非常好用的开发工具,有很多方便的插件,同时默认大家有Linux C编程基础,知道一些常用的终端指令(ls cd cp…)
2023-11-28 14:58:40
261
原创 嵌入式Linux裸机开发笔记(IMX6ULL)—ARM汇编基础
Cortex-A 芯片一上电 SP 指针还没初始化,C 环境还没准备好,C 语言中的函数调用涉及到出栈入栈,出栈入栈就要对堆栈进行操作,所谓的堆栈其实就是一段内存,由 SP 指针访问,SP 指针指向栈顶。本次笔记讲述了学习汇编的必要性,以及简单介绍了GNU大致语法和几种常见的汇编指令,还有很多不常用的指令没有记录到,但已经可以满足嵌入式裸机开发的基本需求了,本笔记单纯是个人在学习过程的知识复习回顾和总结,部分内容提炼于某些教程,本次笔记只记录一些个人使用到的常见汇编指令,希望可以帮助到有需要的小伙伴
2023-11-27 23:56:16
950
1
原创 借助Origin绘图基本步骤
5. 绘制完成后往往需要修饰绘制的图像,通过双击绘制出来的图像点出编辑窗口,即可修改图像的各种参数。1.比如数据存在Excel表格中,双击下图红色剪头所指图标。4.在界面左下角点击绘制折线图即可完成绘制。2. 随后点击确定导入数据。3.选中你想绘制的数据。
2023-10-07 20:07:18
1377
1
原创 从零学Linux第二章——linux开发环境搭建(ubuntu安装)
系统安装方案 1、光驱安装简便,但linux发行版升级频繁,市场上很难买到最新的版本。且许多电脑并没有光驱。 2、USB安装U盘的容量要够大(700M),需要系统的安装镜像及专业软件,电脑要能支持USB启动。 3、使用镜像从硬盘安装下载镜像到硬盘,利用login、grub等引导工具完成完成硬盘引导,可达到类似光驱安装的效果。 ...
2021-08-03 15:20:19
213
原创 从零学Linux第一章——操作系统演变及历史介绍
操作系统演变及历史介绍操作系统的目标方便:使计算机系统易于使用有效:以更有效的方式使用计算机系统资源扩展:方便用户有效开发、测试和引进新功能操作系统的功用:进程管理/内存管理/文件系统/设备控制/网络管理操作系统的发展经历 无操作系统阶段 简单8位、16位操作系统阶段 复杂的多任务、多用户操作系统阶段主流操作系统 PC: windows家族、unix家族、mac家族 嵌入式:ucosII、linux、winCE、android、iOS等无...
2021-08-02 19:37:06
962
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人