自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

TTZZWWW

电路爱好者,单片机非骨灰玩家,变量起名抓耳挠腮,界面设计纠结反复

  • 博客(19)
  • 收藏
  • 关注

原创 【嵌入式移植】9、U-Boot源码分析5—启动过程分析lowlevel_init

均未定义,因此115行和119行判断条件均不成立,程序直接跳转到132行开始运行,即。(Port A共有22个port,通过CFG0~3进行设置,这里。寄存器中,即设置堆栈栈顶指针指向内存中定义好的地址(寄存器值的低4位,即16字节对齐,并将结果保存在。的当前内容,即保留现场,保存子程序返回地址;,根据所用串口的索引号进行设置,这里通过查找可知。,在设置好堆栈,保存好子程序返回地址后,使用。这2个寄存器的内容,然后第43行使用。,定义了2个存有寄存器地址的结构体,中继续运行,即从图中115行开始运行。

2024-03-29 23:40:21 1003

原创 【嵌入式移植】8、U-Boot源码分析5—启动过程分析start.S

boot0.h。

2024-03-04 22:55:07 839

原创 【嵌入式移植】7、U-Boot源码分析4—链接脚本分析

第32行~57行为sram中其它段的定义。

2024-02-25 22:49:43 828

原创 【嵌入式移植】6、U-Boot源码分析3—make

中,然后顶层Makefile第704行通过sort函数按照字母顺序升序排序,第710行通过patsubst函数将libs-y末尾的/替换成/built-in.o,即所有用到的库目录中的。这个工具制作的,查看详细的编译过程输出,找到对应的语句(这里可以使用。在顶层Makefile中定义,即根据配置将所有用到的库路径保存在。中U-Boot的编译和烧写过程,最终是将编译生成的。语句输出详细的编译过程,单独保存下来查看)命令的时候,没有指定目标则使用默认目标。完结撒花✿✿ヽ(°▽°)ノ✿。依赖,根据变量定义,在。

2024-02-15 22:36:08 149

原创 【嵌入式移植】5、U-Boot源码分析2—make nanopi_neo2_defconfig

上一章中,对Makefile相关源码进行了初步分析,这里结合编译过程具体分析其执行过程。第9行~17行,定义了2个变量,这里obj在执行命令时输入,为最终结果为。

2024-01-28 23:44:54 1093

原创 【嵌入式移植】4、U-Boot源码分析1—Makefile

第257行~261行,定义HOSTCCHOSTCXXHOSTCFLAGS4个变量后续第263行~295行,判断HOSTOS是否为cygwin或者darwin,将对上述变量值进行修改,这里,因此上述变量值不变,最终为第300行~326行,对KBUILD_SRC变量进行赋值结合前述分析,最终值为。

2024-01-21 19:57:16 871

原创 【嵌入式移植】3、编译U-Boot

一起写入arch/arm/dts/.sun50i-h5-nanopi-neo2.dtb.pre.tmp文件中,查看此文件,其最后其一行确实相比arch/arm/dts/sun50i-h5-nanopi-neo2.dts文件增加了一行#include "sunxi-u-boot.dtsi”(此文件同时设置了用于输出u-boot启动过程信息的端口为uart0,波特率115200,对应引脚为PF5、PF6等相关信息)可知yylloc在dtc-parser.tab.c、dtc-lexer.lex.c均存在定义。

2024-01-13 19:52:13 1000

原创 【嵌入式移植】2、使用Crosstool-NG制作交叉编译工具链

在/crosstool-ng路径下新建src、crosstool-build、x-tools文件夹,并将/crosstool-ng-1.26.0/samples/aarch64-rpi3-linux-gnu/crosstool.config文件复制到/crosstool-ng路径下,重命名为.config,后续将在/crosstool-ng路径下进行制作,即${CT_TOP_DIR}=~/arm/crosstool-ng。在~/arm/crosstool-ng路径下执行ct-ng build命令。

2024-01-07 21:38:40 1481 4

原创 【嵌入式移植】1、Ubuntu系统准备

嵌入式移植通常使用Linux操作系统的环境,使用Linux下的交叉编译工具链对BootLoader、kernel以及应用程序进行编译,然后下载运行。在“CD/DVD驱动器1”中选择“数据存储ISO文件”,并在弹出的界面中点击“上载”,选择下载的ubuntu-22.04.3 ISO文件上传至存储中,并点击选择。点击“虚拟机”,并点击左上角“创建/注册虚拟机”,在弹出的页面中选择“创建新虚拟机”,并点击下一页。在新建的虚拟机上点击“打开电源”,开始ubuntu的安装,这里不再赘述。最后确认参数设置并点击完成。

2024-01-07 12:51:56 920

原创 【STM32F103笔记】9、I2C通信——玩转OLED(OLED命令详解)

I2C通信——玩转OLED(OLED命令详解)I2C介绍I2C主机模式通信格式I2C寄存器1、Control register 1 (I2C_CR1)2、Control register 2 (I2C_CR2)3、Own address register 1 (I2C_OAR1)4、Own address register 2 (I2C_OAR2)5、Data register (I2C_DR)6...

2020-03-15 21:31:21 10597 6

原创 【STM32F103笔记】8、数据采集之ADC——做个数字电压表吧

咳咳,这一篇来玩一下STM32的ADC(Analog to Digital Converter),也就是可以把输入的模拟量转换为数字量,这样就可以做个电压表了,再加上一些辅助电路,就能够自己做一个万用表了,非常完美。(嗯,这篇我们只做数字电压表~就是这么懒)从这一篇开始,对STM32内部结构和寄存器的介绍会更加详细一点,要开始深入了解了,感兴趣的朋友还可以对照前几篇自个儿深入了解一下,嘿嘿~ ....

2020-03-07 12:58:01 10596 2

原创 【STM32F103笔记】7、定时器之PWM输出——做个呼吸灯

这一篇来介绍STM32的定时器,STM32的定时器分为三类:基本定时器(Basic timers):从0计数到预设的值,并触发中断或DMA,没有其它功能,其内部与DAC相连,可以用于触发DAC;通用定时器(General-purpose timers):可以升序或者降序计数,可以用于输入捕捉、PWM输入、比较输出、PWM输出、单脉冲输出等等功能;高级定时器(Advanced-control...

2020-03-01 16:29:00 5638 3

原创 【STM32F103笔记】6、Systick——做个精确的延时

在【STM32F103笔记】2、单片机中的HelloWorld——流水灯中我们曾写过一个简单的延时函数,利用空操作函数__nop()并大致计算延时时间,但这个函数并不精确,有兴趣的朋友可以再把那一篇中的程序运行结果和标准时钟比较一下。这一篇中将使用Cortex-M3内核自带的系统时钟 (System Time)设计精确的延时函数。SysTickCortex-M3内核自带一个24位的降序计数器...

2020-02-29 19:27:09 1560 1

原创 【闲来无事玩C#】1、简单的串口上位机程序

这一篇来做一个简单的串口上位机程序,配合【STM32F103笔记】中的串口程序使用,后续还可以在这个串口小程序的基础上添加更多功能,可以根据预先设计的数据格式,将串口小程序接收到的数据进行不同的显示,并根据接收到的数据向STM32发送控制指令,比如上位机PID控制STM32电机调速或者转角控制等等,会很有意思。笔者也是刚开始学C#,就当做和大家一起学习进步啦。C#开发环境Visual Stu...

2020-02-28 18:55:46 2041 2

原创 【STM32F103笔记】5、串口通信——你好呀~

这一篇来说说STM32的串口通信功能,可以说串口通信是每个工程师在开发过程中第一或者第二个进行调试的程序(第一个可能是点灯,固定时间闪烁的那种),因为作为一种通信手段,单片机可以输出一些必要的信息,为调试其他程序提供有力的帮助(当然如果用JLink的话,配合keil uVision5可以单步调试啦。。但是不能否认串口通信在大多数情况下都调试的好帮手)。这一篇将编写STM32的USART程序,并通...

2020-02-26 18:47:14 2651 1

原创 【STM32F103笔记】4、中断之外部中断——喂~烧水啦

这一篇来说一下单片机或者说所有处理器提高运行效率的方法——中断处理,为什么这么说呢,记得我以前看到过一个十分形象的例子,这里我“修饰”一下和大家分享:小明看着电影突然想喝水,但是水壶里没水了,要烧开一壶水(他不喝冷水的),于是把壶装满水放在炉子上(当然也可以用电热水壶嘛),然后突然精神分裂了:一个小明每隔10秒就去揭开壶盖看看水有没有开,终于他在第100次揭盖的时候发现,水终于开了,并且也错...

2020-02-24 21:45:46 2230 1

原创 【STM32F103笔记】3、按键与矩阵键盘

上一篇说完了STM32库开发的引脚输出控制,这一篇对其引脚输入控制方法进行说明,引脚设置为输入功能时能够感知引脚上的电平高低,具有模拟输入复用功能的引脚还可以结合芯片内部的A/D准确测量其电平值,后续在ADC章节再进行讨论。这里通过按键改变引脚的输入电平高低,当引脚上接入高电平时,其输入数据寄存器对应的位将置1,而当引脚上接入低电平时,将清0;程序对引脚的输入数据进行判断,并控制LED的亮灭。...

2020-02-23 19:39:26 7940 3

原创 【STM32F103笔记】2、单片机中的HelloWorld——流水灯

单片机作为一种微控制器,最基本的用途便是通过其引脚与外界进行交互,而在单片机编程界,有这么一个程序,堪称单片机中的HelloWorld,不仅可以熟悉单片机的引脚控制,更能对单片机的时钟进行深入了解,那就是几乎所有单片机教程中都会提到的——流水灯。在上一篇中我们已经搭建好了STM32开发环境,点亮了第一个LED灯,这一篇将从电路原理分析开始,对流水灯的控制原理,电路参数设计,STM32F103引脚...

2020-02-22 18:40:19 4582 2

原创 【STM32F103笔记】1、搭建开发环境

STM32F103介绍STM32F系列是意法半导体(ST)公司的32位ARM微控制器,内核采用Cortex-M3,其它方面的说明可以查阅相关资料。STM32F103C8T6最小系统板这里用的是笔者购买的两款STM32F103C8T6的最小系统板,如下图:两款最小系统板很相似,左侧都是JLink插口,右侧布置有供电接口、复位按键、启动方式选择跳帽(图中绿色和红色的小东西),并且把引脚在周围...

2020-02-19 20:59:06 4399 4

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除