自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(67)
  • 收藏
  • 关注

原创 LV.23 D3 STM32 GPIO口操作平台介绍 学习笔记

通用输入输出接口GPIO是嵌入式系统、单片机开发过程中最常用的接口,用户可以通过编程灵活的对接口进行控制,实现对电路板上LED、数码管、按键等常用设备控制驱动,也可以作为串口的数据收发管脚,或AD的接口等复用功能使用。因此其作用和功能是非常重要的。GPIO引脚如果是输入模式,就可以感知这条线路的高低电平变化,从而判断按键是按下还是抬起GPIO引脚如果是输出模式,就可以向这条线路发送高低电平,从而使LED灯点亮或熄灭。

2024-02-18 01:43:00 1169

原创 LV.23 D2 开发环境搭建及平台介绍 学习笔记

STM32CubeMX简介直观的选择STM32微控制器微控制器图形化配置自动处理引脚冲突动态设置确定的时钟树可以动态确定参数设置的外围和中间件模式和初始化功耗预测C代码工程生成器覆盖了STM32微控制器初始化编译软件,如IAR,KEIL,GCC可以独立使用,作为Eclipse插件使用TM32CubeMX获取官网地址: http://www.st.com/en/development-tools/stm32cubemx.htmlSTM32CubeMX安装。

2024-02-16 16:55:06 906

原创 LV.23 D1 ARM体系结构概述 学习笔记

Cortex-M 系列产品主要包括 Cortex-M0、Cortex-M1、Cortex-M3、Cortex-M4、Cortex-M7 等,其中 Cortex-M0 主打低功耗和混合信号的处理,M3 主要用来替代 ARM7,重点侧重能耗与性能的平衡,而 M7 则重点放在高性能控制运算领域。注:我们课程中使用的STM32F051微控制器内核就是ARM Cortex-M0、因此我们首先学习一下M0内核的知识。

2024-02-07 23:22:23 1011

原创 LV.13 D12 Linux内核调试及rootfs移植 学习笔记

根文件系统是内核启动后挂载的第一个文件系统系统引导程序会在根文件系统挂载后从中把一些基本的初始化脚本和服务等加载到内存中去运行。

2024-01-21 02:28:04 442

原创 LV.13 D11 Linux驱动移植及内核深化 学习笔记

设备树文件dts 设备树源文件dtsi 类似于头文件,包含一些公共的信息,可被其它设备树文件引用dtb 编译后的设备树文件设备树语法设备树的语法为树状结构,由一系列的节点和属性组成,根节点下包含子节点子节点下还可以包含子节点,节点内部包含了对应设备的属性。

2024-01-14 22:36:36 502

原创 LV.13 D10 Linux内核移植 学习笔记

内核是一个操作系统的核心,提供了操作系统最基本的功能,是操作系统工作的基础,决定着整个系统的性能和稳定性操作系统是在内核的基础上添加了各种工具集、桌面管理器、库、shell、应用程序等uboot中的shell命令是放在跟目录下的bin中,开发板中的shell命令是放在根文件系统中。

2024-01-13 21:20:32 1028

原创 LV.13 D9 uboot移植深化 学习笔记

了解内容,因为工作时很少自己移植,对应的公司会提供。具体步骤:LV13 D9 实验手册。

2024-01-07 20:47:02 386

原创 LV.13 D8 uboot源码配置编译 学习笔记

前期:uboot-1.2.3现在:uboot-2008.01支持对应的硬件平台相对成熟的版本(资料多)

2024-01-04 23:26:21 422

原创 LV.13 D7 交叉编译工具链 学习笔记

机器码(二进制)是处理器能直接识别的语言,不同的机器码代表不同的运算指令,处理器能够识别哪些机器码是由处理器的硬件设计所决定的,不同的处理器机器码不同,所以机器码不可移植汇编语言是机器码的符号化,即汇编就是用一个符号来代替一条机器码,所以不同的处理器汇编也不一样,即汇编语言也不可移植C语言在编译时我们可以使用不同的编译器将C源码编译成不同架构处理器的汇编,所以C语言可以移植。

2023-12-30 21:01:37 996

原创 LV.13 D6 Linux内核安装及交叉编译 学习笔记

bootm 启动指定内存地址上的Linux内核并为内核传递参数 bootm kernel-addr ramdisk-addr dtb-addr 注: kernel-addr: 内核的下载地址 ramdisk-addr: 根文件系统的下载地址 dtb-addr:

2023-12-24 02:21:57 994

原创 LV.13 D5 uboot概述及SD卡启动盘制作 学习笔记

开发板上电后首先运行内部iROM中固化的代码(BL0),这段代码先对基本的软硬件环境(时钟等...)进行初始化,然后再检测拨码开关位置获取启动方式,然后再将对应存储器中的uboot搬移到内存,然后跳转到uboot运行。uboot开始运行后首先对开发板上的软硬件环境做进一步初始化,然后将linux内核、设备树(dtb)、根文件系统(rootfs)从外部存储器(或网络)搬移到内存,然后跳转到linux运行。

2023-12-18 02:09:58 773

原创 LV.13 D4 uboot使用 学习笔记

uboot 启动后若没有用户介入,倒计时结束后会自动执行自启动环境变量 (bootcmd) 中设置的命令(一般作加载和启动内核)倒计时结束之前按下任意按键 uboot 会进入交互模式,交互模式下,用户可输入 uboot 命令。

2023-12-16 15:32:13 282

原创 LV.13 D3 交叉编译环境搭建 学习笔记

具体步骤看实验1 ubuntu网络环境配置_加水印.pdf。

2023-12-13 21:00:05 88

原创 LV.13 D2 开发板启动流程 学习笔记

EMMC:相当于电脑的外存,断电不丢失开发板上电后首先运行SOC内部iROM中固化的代码(BL0),这段代码先对基本的软硬件环境(时钟等...)进行初始化,然后再检测拨码开关位置获取启动方式,然后再将对应存储器中的uboot搬移到内存,然后跳转到uboot运行uboot开始运行后首先对开发板上的软硬件环境做进一步初始化,然后将linux内核、设备树(dtb)、根文件系统(rootfs)从外部存储器(或网络)搬移到内存,然后跳转到linux运行。

2023-12-10 20:44:24 174

原创 LV.13 D1 嵌入式系统移植导学 学习笔记

操作系统:向下管理硬件、向上提供接口操作系统为我们提供了:1.进程管理2.内存管理3.网络接口4.文件系统5.设备管理那系统移植是干什么呢?就是将Linux操作系统移植到基于ARM处理器的开发板中。那为什么要移植系统呢?在裸机开发的时候我们发现我们什么函数都调不了,什么都要自己实现。这样做开发的时候需要大量的时间。只能做一些小的项目。

2023-12-10 01:17:09 119

原创 LV.12 D24 陀螺仪实验 学习笔记

设置GPB_2引脚和GPB_3引脚功能为I2C传输引脚由于没有校准也没设置滤波,所以静止情况下不是0,正常应该是0的,然后逆时针是正数,顺时针是负数。

2023-12-08 15:08:07 247

原创 LV.12 D23 IIC控制器与MPU6050 学习笔记

​4412有四个IIC,如果要使用需要配置四个寄存器I2CCON:配置一些功能I2CSTAT:控制一些功能、显示一些状态I2CDS:发送和接收数据I2CADD:当4412作为从机时需要一个地址,这个寄存器用于设置地址​支持7位的地址模式,极少数IIC的地址是10位的。标准模式下最快速度是100K,快速模式下可以达到400k。支持主机发送,主机接收,从机发送,从机接收的工作模式。支持中断和轮询。​​上图是主机发送模式下4412的工作流程​上图是主机接收模式下4412的工作流程。

2023-12-06 23:40:41 375

原创 LV.12 D22 IIC总线原理 学习笔记

IIC总线是Philips公司在八十年代初推出的一种串行、半双工总线 主要用于近距离、低速的芯片之间的通信;IIC总线有两根双向的信号线一根数据线SDA用于收发数据,一根时钟线SCL用于通信双方时钟的同步;IIC总线硬件结构简单,成本较低,因此在各个领域得到了广泛的应用IIC总线是一种多主机总线,连接在IIC总线上的器件分为主机和从机主机有权发起和结束一次通信,而从机只能被主机呼叫;当总线上有多个主机同时启用总线时,IIC也具备冲突检测和仲裁的功能来防止错误产生;

2023-12-04 16:41:54 727

原创 LV.12 D21 PWM实验 学习笔记

有源蜂鸣器只要接上额定电源就可以发出声音无源蜂鸣器利用电磁感应原理,为音圈接入交变电流后形成的电磁铁与永磁铁相吸或相斥而推动振膜发声。

2023-12-01 18:04:31 651

原创 LV.12 D20 RTC实验 学习笔记

RTC(Real Time Clock)即实时时钟,它是一个可以为系统提供精确的时间基准的元器件,RTC一般采用精度较高的晶振作为时钟源,有些RTC为了在主电源掉电时还可以工作,需要外加电池供电。

2023-11-26 22:23:02 283

原创 LV.12 D19 ADC实验 学习笔记

ADC(Analog to Digital Converter)即模数转换器,指一个能将模拟信号转化为数字信号的电子元件。

2023-11-24 20:34:22 429

原创 LV.12 D18 中断处理 学习笔记

处理器在正常执行程序的过程中可能会遇到一些不正常的事件发生 这时处理器就要将当前的程序暂停下来转而去处理这个异常的事件 异常事件处理完成之后再返回到被异常打断的点继续执行程序。

2023-11-20 00:05:34 308

原创 LV.12 D17 中断控制器 学习笔记

在处理IRQ的时候,会将CPSR写入IRQ_SPSR,然后将CPU切换为IRQ模式,把状态改成ARM状态,把I位写成1禁止全部的IRQ,所以中断这样是我们不想要的。4412是一个四核的CPU,在发送中断前要确定发送给哪个CPU。任何一个外部设备都能触发FIQ和IRQ,只是FIQ速度快一些。还有很多问题,为了解决这些问题,三星公司在设计时就加了一个中断控制器中断优先级只能决定排队的先后,但是高优先级的不能打断低优先级的中断。多个中断同时产生时可对这些中断挂起排队,然后按照优先级依次发送给CPU处理。

2023-11-06 22:05:15 261

原创 LV.12 D16 轮询与中断 学习笔记

CPU执行程序时不断地询问硬件是否需要其服务,若需要则给予其服务,若不需要一段时间后再次询问,周而复始CPU执行程序时若硬件需要其服务,对应的硬件给CPU发送中断信号,CPU接收到中断信号后将当前的程序暂停下来,转而去执行中断服务程序,执行完成后再返回到被打断的点继续执行硬件产生数据后,硬件控制器可将产生的数据直接写入到存储器中,整个过程无需CPU的参与。

2023-11-04 20:30:27 246

原创 LV.12 D15 WDT实验 学习笔记

WDTWatch Dog Timer即看门狗定时器,其主要作用是当发生软件故障时可产生复位信号使SOC复位,其本质是一个计数器CPU正常工作时,需要定时往看门狗计数器里刷新一个比较大的值,来保证看门狗计数器中的值不会减到0。CPU一旦遇到错误后,就没办法刷新看门狗计数器的值,减到0之后,就会向CPU发送复位信号,让CPU复位。

2023-11-02 22:05:08 246

原创 LV.12 D13 UART实验 学习笔记

Universal Asynchronous Receiver Transmitter 即 通用异步收发器,是一种通用的串行、异步通信总线 该总线有两条数据线,可以实现全双工的发送和接收,在嵌入式系统中常用于主机与辅助设备之间的通信。总线在传送数据的时候,可以一次性发送多位数据。数据线只有一根,逐次传送各位数据在同等条件下,并行比串行的通信速度更快,但并行使用的总线数量较多,会比较浪费资源,布线难度也比较大,不同总线在传输数据时,线和线之间都会有一些信号的干扰。

2023-11-01 17:46:54 234

原创 LV.12 D13 C工程与寄存器封装 学习笔记

把模板在linux解压出来代码写在interface.c就可以了。map.lds是链接脚本文件(负责代码的排布)include中是头文件,src中是写好的源代码start.s是启动代码,在interface.c之前运行,把cpu和栈做一个初始化。

2023-10-29 17:27:25 246

原创 LV.12 D12 GPIO实验 学习笔记

GPIO(General-purpose input/output)即通用型输入输出,GPIO可以控制连接在其之上的引脚实现信号的输入和输出芯片的引脚与外部设备相连,从而实现与外部硬件设备的通讯、控制及信号采集等功能1. 通过电路原理图分析LED的控制逻辑2. 通过电路原理图查找LED与Exynos4412的连接关系3. 通过数据手册分析GPIO中哪些寄存器可以控制LED4. 通过程序去操控对应的寄存器完成对LED的控制。

2023-10-28 21:12:46 228

原创 LV.12 D11 FS4412开发环境搭建 学习笔记

1.搜索丝印2.查找目录电路图中网络标号相同的节点在电气上是连接在一起的。

2023-10-26 17:22:37 66

原创 LV.12 D10 伪操作与混合编程 学习笔记

【代码】LV.12 D10 伪操作与混合编程 学习笔记。

2023-10-24 18:13:20 22

原创 LV.12 D9 专用指令 学习笔记

【代码】LV.12 D9 专用指令 学习笔记。

2023-10-22 23:41:47 41

原创 LV.12 D8 栈的种类与应用 学习笔记

栈的本质就是一段内存,程序运行时用于保存一些临时数据 如局部变量、函数的参数、返回值、以及程序跳转时需要保护的寄存器等。栈指针指向最后一次压入到栈中的数据的相邻位置,压栈时可直接压栈,之后需要将栈指针移动到相邻位置。栈指针指向最后一次压入到栈中的数据,压栈时,需要先移动栈指针到相邻位置然后再压栈。压栈时栈指针越来越大,出栈时栈指针越来越小。压栈时栈指针越来越大,出栈时栈指针越来越小。四种 ARM处理器一般使用。

2023-10-21 07:39:52 35

原创 LV.12 D7 跳转与存储器访问指令 学习笔记

【代码】LV.12 D7 跳转与存储器访问指令 学习笔记。

2023-10-20 18:01:45 38

原创 LV.12 D6 数据处理指令 学习笔记

【代码】LV.12 D6 数据处理指令 学习笔记。

2023-10-16 16:54:47 36

原创 LV.12 D5 ARM指令集仿真环境搭建 学习笔记

汇编中的符号1.指令:能够编译生成一条32bit机器码,并且能被cpu识别和执行2.伪指令:本身不是指令,编译器可以将其替换成若干条指令3.伪操作:不会生成指令,只是子啊编译阶段告诉编译器怎么编译ARM指令集1.数据处理指令:进行数学运算、逻辑运算2.跳转指令:实现程序的跳转,本质就是修改了PC寄存器3.Load/Srore指令:访问(读写)内存4.状态寄存器传送指令:用于访问(读写)CPSR寄存器5.软中断指令:触发软中断6.协处理器指令:操作协处理器的指令。

2023-10-14 16:25:35 46

原创 LV.12 D4 ARM异常处理 学习笔记

处理器在正常执行程序的过程中可能会遇到一些不正常的事件发生,这时处理器就要将当前的程序下来转而去处理这个异常的事件,异常事件处理完成之后再到被异常打断的点继续执行程序。

2023-10-13 02:28:48 40

原创 LV.12 D3 ARM寄存器组织 学习笔记

在某个特定模式下只能使用当前模式下的寄存器,一个模式下特有的寄存器(打三角形的)其他模式下不可使用。ARM一共有40个寄存器。

2023-10-12 14:10:28 38

原创 LV.12 D2 ARM处理器概论 学习笔记

指令能够指示处理器执行某种运算的命令称为指令(如加、减、乘 ...)指令在内存中以机器码(二进制)的方式存在每一条指令都对应一条汇编程序是指令的有序集合指令集处理器能识别的指令的集合称为指令集不同架构的处理器指令集不同指令集是处理器对开发者提供的接口大多数ARM处理器都支持两种指令集:ARM指令集所有指令(机器码)都占用32bit存储空间代码灵活度高、简化了解码复杂度执行ARM指令集时PC值每次自增4Thumb指令集所有指令(机器码)都占用16bit存储空间。

2023-10-11 19:43:51 38

原创 LV.12 D1 计算机硬件基础 学习笔记

一条指令的执行分为三个阶段CPU将PC寄存器中的地址发送给内存,内存将其地址中对应的指令返回到CPU中的指令寄存器(IR)2.译码:译码器对IR中的指令进行识别,将指令(机器码)解析成具体的运算3.执行:控制器控制运算器中对应的运算单元进行运算,运算结果写入寄存器每执行一条指令后PC的值会自动增加指向下一条指令。

2023-10-10 00:51:57 31

原创 LV.10 D1-D2 SQLite数据库 学习笔记

在终端下运行sqlite3 ,出现如下提示符sqlite> 是要打开的数据库文件。若该文件不存在,则自动创建显示所有命令退出sqlite3显示当前打开的数据库文件显示数据库中所有表名查看表的结构以下为SQL命令,每个命令以;结束创建新表删除表查询表中所有记录按指定条件查询表中记录向表中添加新记录按指定条件删除表中记录更新表中记录在表中添加字段在表中删除字段Sqlite中不允许删除字段,可以通过下面步骤达到同样的效果。

2023-09-22 08:29:09 38

LV.19 C++课程讲义

LV.19 C++课程讲义

2024-01-22

ubuntu网络环境配置

ubuntu网络环境配置

2023-12-12

MPU6050常用寄存器

MPU6050常用寄存器

2023-12-05

汇编工程创建及介绍说明

汇编工程创建及介绍说明

2023-10-14

交叉编译工具链-Windows安装说明

交叉编译工具链-Windows安装说明

2023-10-14

Keil的安装说明介绍

Keil的安装说明介绍

2023-10-14

LV.11 D1-D2 SQLite数据库笔记

LV.11 D1-D2 SQLite数据库笔记

2023-09-22

LV.9 D9-D12 私人云盘项目

LV.9 D9-D12 私人云盘项目

2023-09-19

深入理解传输层协议 笔记

深入理解传输层协议 笔记

2023-07-21

空空如也

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

TA关注的人

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