ARM
文章平均质量分 75
沧海一笑-dj
这个作者很懒,什么都没留下…
展开
-
【ARM】ARM架构CPU和编译器汇总
softfp : armel架构(对应的编译器为gcc-arm-linux-gnueabi)采用的默认值,用fpu计算,但是传参数用普通寄存器传,这样中断的时候,只需要保存普通寄存器,中断负荷小,但是参数需要转换成浮点的再计算。hard : armhf架构(对应的编译器为gcc-arm-linux-gnueabihf)采用的默认值,用fpu计算,传参数也用fpu中的浮点寄存器传,省去了转换, 性能最好,但是中断负荷高。ARM32、小端、Linux工程: arm-linux-gnueabihf -原创 2024-04-16 11:51:21 · 1859 阅读 · 0 评论 -
【S5P6818】最小文件系统制作
BusyBox 是一个集成了三百多个最常用Linux命令和工具的软件。BusyBox 包含了一些简单的工具,例如ls、cat和echo等等,还包含了一些更大、更复杂的工具,例grep、find、mount以及telnet。有些人将 BusyBox 称为 Linux 工具里的瑞士军刀。简单的说BusyBox就好像是个大工具箱,它集成压缩了 Linux 的许多工具和命令,也包含了 Linux 系统的自带的shell。BusyBox 将许多具有共性的小版本的UNIX工具结合到一个单一的可执行文件。原创 2023-08-23 14:03:07 · 217 阅读 · 0 评论 -
【s5p6818】fastboot驱动安装
驱动文件:fastboot_android_driver。由于没有对应的驱动,需要安装对应的驱动。在弹出的界面选择始终安装没有签名的驱动。但是fastboot驱动显示感叹号。选择浏览我的电脑以查找驱动程序。选择驱动所在的目录,点击下一步。在A53板子侧执行以下命令。安装好之后的界面如下。原创 2023-08-13 18:51:31 · 1838 阅读 · 0 评论 -
【ARM】arm-linux-gcc 没有那个文件或目录
原因分析: arm-linux-gcc是32位,而我们的Ubuntu是64位,因此需要安装32位的库。安装lib32z1(Ubuntu 22.04版本)输入arm-linux-gcc命令的时候提示。原创 2023-08-13 12:10:42 · 1009 阅读 · 0 评论 -
【S5P6818】Win10强制禁用驱动程序签名
由于fastboot驱动程序中没有对应的文件哈希值文件,win10默认开启了驱动程序签名,因此会报错。解决办法禁用驱动程序签名即可。win10操作系统安装fastboot驱动时,出现文件的哈希值不在指定的目录文件中,此文件可能已经损坏或被篡改。3.8 系统重新启动以后在启动设置页面按“7”7或者“F7”选择禁用驱动程序强制签名即可。4.1 在系统的开始菜单中,找到命令提示符功能,并选择以管理员身份运行。3.3 在更新和安全页面选择左侧的恢复标签,在右侧选择立即重新启动。3.6 在高级选项页面选择启动设置。原创 2023-05-08 16:04:14 · 7460 阅读 · 0 评论 -
【S5P6818】XShell串口连接开发板
Win10系统一般会默认安装,如果默认没有安装就安装对应的驱动即可。如果能够看到log信息,表示连接OK。原创 2023-05-08 15:43:04 · 1864 阅读 · 3 评论 -
【S5P6818】6818开发板简介
6818 开发板由邮票孔核心板,底板和液晶板三大块组成,核心板采用 8 层板工艺设计,确保稳定可靠,可以批量用于平板电脑,车机,学习机,POS 机,游戏机,行业监控等多种领域。它是 4418 开发板的姐妹版,CPU 由原来的 S5P4418 升级为 S5P6818,ARM 核由A9 四核升级为 A53 八核,最高主频 1.4GHz。底板留有丰富的外设,几乎可以演示 6818 芯片的全部功能,支持千兆以太网、板载 LVDS 接口、MIPI 接口、PCIE 接口等。支持软件开关机,休眠唤醒等。原创 2023-05-07 15:18:01 · 5295 阅读 · 0 评论 -
【嵌入式】ARM技术博客汇总
00. 目录文章目录00. 目录01. 开发环境02. ARM汇编03. ARM裸板04. 内核驱动05. 项目实践06. 问题专区07. 参考链接08. 附录01. 开发环境【Tiny4412】Tiny4412编译和烧写uboot【Tiny4412】Tiny4412烧写uboot脚本分析【Tiny4412】设置Uboot提示符和关闭MMU【Tiny4412】Uboot常用命令【Tiny4412】烧写Android系统(SD卡)【Tiny4412】最小网络文件系统制作【Tiny4412】搭原创 2021-05-18 21:01:17 · 577 阅读 · 0 评论 -
【ARM】Tiny4412裸板编程之异常(软中断)
00. 目录文章目录00. 目录01. 开发环境02. 中断向量表03. 中断向量表实现04. 设置Vectors bit05. 程序示例一06. 程序示例二07. 附录01. 开发环境开发板:Tiny4412SDK标准版 「Tiny4412 SDK 1506」工具:「arm-linux-gcc-4.5.1」 「minicom」 「dnw」平台:Ubuntu 20.0402. 中断向量表B1.8.1 Exception vectors and the exception base addr原创 2020-08-15 21:32:23 · 596 阅读 · 0 评论 -
【ARM】Tiny4412裸板编程之异常(中断向量表)
00. 目录文章目录00. 目录01. 开发环境02. 中断向量表03. 中断向量表实现04. 设置Vectors bit05. 主函数实现06. 附录01. 开发环境开发板:Tiny4412SDK标准版 「Tiny4412 SDK 1506」工具:「arm-linux-gcc-4.5.1」 「minicom」 「dnw」平台:Ubuntu 20.0402. 中断向量表B1.8.1 Exception vectors and the exception base address03.原创 2020-08-15 17:27:01 · 646 阅读 · 0 评论 -
【ARM】Tiny4412裸板编程之异常
00. 目录文章目录00. 目录01. 开发环境02. 概述03. ARM处理器模式04. 异常类型05. 异常处理5.1 异常处理伪代码5.2 复位异常5.3 未定义指令异常5.4 软中断异常5.5 预取异常5.6 数据异常5.7 外部中断异常5.8 快速中断异常06. FIQ 与 IRQ 比较07. 附录01. 开发环境开发板:Tiny4412SDK标准版 「Tiny4412 SDK 1506」工具:「arm-linux-gcc-4.5.1」 「minicom」 「dnw」平台:Ubuntu原创 2020-08-15 15:52:46 · 480 阅读 · 0 评论 -
【ARM】Tiny4412裸板编程之MMU封装
00. 目录文章目录00. 目录01. 开发环境02. Tiny4412内存布局03. 配置MMU04. 程序示例05. 附录01. 开发环境开发板:Tiny4412SDK标准版 「Tiny4412 SDK 1506」工具:「arm-linux-gcc-4.5.1」 「minicom」 「dnw」平台:Ubuntu 20.0402. Tiny4412内存布局咱们的内存是1G,范围是0x40000000~0x8000000在0x40000000~0x80000000, 程序示例#inc原创 2020-08-14 15:57:10 · 566 阅读 · 0 评论 -
【ARM】Tiny4412裸板编程之MMU(页 4K)
00. 目录文章目录00. 目录01. 开发环境02. Tiny4412内存布局03. 配置MMU04. 程序示例一05. 程序示例二06. 附录01. 开发环境开发板:Tiny4412SDK标准版 「Tiny4412 SDK 1506」工具:「arm-linux-gcc-4.5.1」 「minicom」 「dnw」平台:Ubuntu 20.0402. Tiny4412内存布局咱们的内存是1G,范围是0x40000000~0x8000000在0x40000000~0x80000000,原创 2020-08-14 10:45:34 · 910 阅读 · 0 评论 -
【ARM】Tiny4412裸板编程之MMU(段 16M)
00. 目录文章目录00. 目录01. 开发环境02. Tiny4412内存布局03. 配置MMU04. 程序示例一05. 程序示例二06. 附录06. 附录01. 开发环境开发板:Tiny4412SDK标准版 「Tiny4412 SDK 1506」工具:「arm-linux-gcc-4.5.1」 「minicom」 「dnw」平台:Ubuntu 20.0402. Tiny4412内存布局咱们的内存是1G,范围是0x40000000~0x8000000在0x40000000~0x800原创 2020-08-13 21:45:11 · 530 阅读 · 0 评论 -
【ARM】Tiny4412裸板编程之MMU(段1M)
00. 目录文章目录00. 目录01. 开发环境02. Tiny4412内存布局03. 配置MMU04. 程序示例一05. 程序示例二06. 附录01. 开发环境开发板:Tiny4412SDK标准版 「Tiny4412 SDK 1506」工具:「arm-linux-gcc-4.5.1」 「minicom」 「dnw」平台:Ubuntu 20.0402. Tiny4412内存布局咱们的内存是1G,范围是0x40000000~0x8000000在0x40000000~0x80000000,原创 2020-08-13 17:58:12 · 650 阅读 · 0 评论 -
【ARM】Tiny4412裸板编程之协处理器
00. 目录文章目录00. 目录01. 开发环境02. 协处理器简介03. 获取Main ID04. 获取CCSIDR05. 获取SCTLR06. ID_MMFR307. 附录01. 开发环境开发板:Tiny4412SDK标准版 「Tiny4412 SDK 1506」工具:「arm-linux-gcc-4.5.1」 「minicom」 「dnw」平台:Ubuntu 20.0402. 协处理器简介协处理器(coprocessor),一种芯片,用于减轻系统微处理器的特定处理任务。协处理器,这原创 2020-08-13 15:50:03 · 1001 阅读 · 0 评论 -
【ARM】Tiny4412裸板编程之MMU简介
00. 目录文章目录00. 目录01. MMU简介02. MMU发展03. 地址分类04. MMU工作过程05. 段地址转换过程06. 二级页表描述符07. TLB的作用08. Cache的作用09. 附录01. MMU简介MMU(Memory Management Unit)主要用来管理虚拟存储器、物理存储器的控制线路,同时也负责虚拟地址映射为物理地址,以及提供硬件机制的内存访问授权、多任务多进程操作系统。02. MMU发展学习一个知识点,很重要的一步是了解其**为什么而存在?它的存在是为了解决原创 2020-08-13 11:30:04 · 755 阅读 · 0 评论 -
【ARM】Tiny4412裸板编程之ADC
00. 目录文章目录00. 目录01. 开发环境02. ADC概述03. ADC特性04. ADC模块图05. ADC寄存器06. ADC电路连接07. 程序示例08. 附录01. 开发环境开发板:Tiny4412SDK标准版 「Tiny4412 SDK 1506」工具:「arm-linux-gcc-4.5.1」 「minicom」 「dnw」平台:Ubuntu 20.0402. ADC概述10位或12位CMOS再循环式模拟数字转换器,它具有10通道输入,并可将模拟量转换至10位或12位二原创 2020-08-08 11:53:05 · 2148 阅读 · 0 评论 -
【ARM】Tiny4412裸板编程之静态库(libc.a)
00. 目录文章目录00. 目录01. 开发环境02. 概述03. 库的来源04. 程序示例一05. 程序示例二06. 附录01. 开发环境开发板:Tiny4412SDK标准版 「Tiny4412 SDK 1506」工具:「arm-linux-gcc-4.5.1」 「minicom」 「dnw」平台:Ubuntu 20.0402. 概述libc是Linux下的ANSI C的函数库。ANSI C是基本的C语言函数库,包含了C语言最基本的库函数。这个库可以根据 头文件划分为 15 个部分,其原创 2020-08-07 21:12:18 · 2757 阅读 · 0 评论 -
【ARM】Tiny4412裸板编程之 printf函数
00. 目录文章目录00. 目录01. 开发环境02. printf概述03. Uboot中printf函数04. 程序示例一05. 附录01. 开发环境开发板:Tiny4412SDK标准版 「Tiny4412 SDK 1506」工具:「arm-linux-gcc-4.5.1」 「minicom」 「dnw」平台:Ubuntu 20.0402. printf概述printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。在编写程序时经常会用到此函数。函数的原型为:i原创 2020-08-07 17:53:35 · 910 阅读 · 0 评论 -
【ARM】Tiny4412裸板编程之按键(C语言)
00. 目录文章目录00. 目录01. 开发环境02. 控制原理03. 配置寄存器04. 程序示例一05. 程序示例二06. 附录01. 开发环境开发板:Tiny4412SDK标准版 「Tiny4412 SDK 1506」工具:「arm-linux-gcc-4.5.1」 「minicom」 「dnw」平台:Ubuntu 20.0402. 控制原理试过了GPIO的输出功能,再来测试下GPIO的输入功能。开发板上有四个用户按键,使用这四个按键来控制四个LED的状态。咱们的按键在底板上,所以需原创 2020-08-07 16:18:57 · 991 阅读 · 0 评论 -
【ARM】Tiny4412裸板编程之蜂鸣器(C语言)
00. 目录文章目录00. 目录01. 控制原理02. 配置寄存器03. 程序示例一04. 程序示例二05. 程序示例三06. 附录01. 控制原理咱们的蜂鸣器在底板上,所以需要看底板的原理图打开底板原理图(Tiny4412SDK-1506-Schematic.pdf)由上图可知,Tiny4412有1个蜂鸣器,控制它们四个引脚分别是GPD0_0,由原理可知,当IO引脚为高电平时,蜂鸣器就响,当IO引脚为低电平时蜂鸣器就不响了。我们要做的工作就是设置GPD0_0为输出功能,且控制且输出电平高低原创 2020-08-07 15:08:04 · 1760 阅读 · 0 评论 -
【ARM】Tiny4412裸板编程之LED(C语言)
00. 目录文章目录00. 目录01. 控制原理02. 配置寄存器03. 程序示例一04. 程序示例二05. 程序示例三06. 程序实例四07. 附录01. 控制原理咱们的LED在核心板上,所以需要看核心板的原理图打开核心板原理图(Tiny4412-1412-Schematic.pdf)由上图可知,Tiny4412有4个用户LED灯,控制它们四个引脚分别是GPM4_0~ GPM4_3,由原理可知,当IO引脚为高电平时,LED灯灭,当IO引脚为低电平时LED亮。我们要做的工作就是设置GPM4_原创 2020-08-07 14:45:09 · 860 阅读 · 0 评论 -
【ARM】Tiny4412裸板编程之按键
00. 目录文章目录00. 目录01. 开发环境02. 控制原理03. 配置寄存器04. 程序示例一05. 程序示例二06. 附录01. 开发环境开发板:Tiny4412SDK标准版 「Tiny4412 SDK 1506」工具:「arm-linux-gcc-4.5.1」 「minicom」 「dnw」平台:Ubuntu 20.0402. 控制原理试过了GPIO的输出功能,再来测试下GPIO的输入功能。开发板上有四个用户按键,使用这四个按键来控制四个LED的状态。咱们的按键在底板上,所以需原创 2020-08-06 11:24:04 · 789 阅读 · 0 评论 -
【ARM】Tiny4412裸板编程之蜂鸣器
00. 目录文章目录00. 目录01. 控制原理02. 配置寄存器03. 程序示例一04. 程序示例二05. 程序示例三06. 附录01. 控制原理咱们的蜂鸣器在底板上,所以需要看底板的原理图打开底板原理图(Tiny4412SDK-1506-Schematic.pdf)由上图可知,Tiny4412有1个蜂鸣器,控制它们四个引脚分别是GPD0_0,由原理可知,当IO引脚为高电平时,蜂鸣器就响,当IO引脚为低电平时蜂鸣器就不响了。我们要做的工作就是设置GPD0_0为输出功能,且控制且输出电平高低原创 2020-08-06 10:14:27 · 1159 阅读 · 0 评论 -
【ARM】Tiny4412裸板编程之LED(二)
00. 目录文章目录00. 目录01. 控制原理02. 配置寄存器03. 程序示例一04. 程序示例二05. 程序示例三06. 附录01. 控制原理咱们的LED在核心板上,所以需要看核心板的原理图打开核心板原理图(Tiny4412-1412-Schematic.pdf)由上图可知,Tiny4412有4个用户LED灯,控制它们四个引脚分别是GPM4_0~ GPM4_3,由原理可知,当IO引脚为高电平时,LED灯灭,当IO引脚为低电平时LED亮。我们要做的工作就是设置GPM4_0~ GPM4_3原创 2020-08-05 17:13:52 · 2278 阅读 · 2 评论 -
【ARM】Tiny4412裸机编程之LED(一)
00. 目录文章目录00. 目录01. 控制原理02. 配置寄存器03. 程序示例一04. 程序示例二05. 程序示例三06. 附录01. 控制原理咱们的LED在核心板上,所以需要看核心板的原理图打开核心板原理图(Tiny4412-1412-Schematic.pdf)由上图可知,Tiny4412有4个用户LED灯,控制它们四个引脚分别是GPM4_0~ GPM4_3,由原理可知,当IO引脚为高电平时,LED灯灭,当IO引脚为低电平时LED亮。我们要做的工作就是设置GPM4_0~ GPM4_3原创 2020-08-04 17:19:24 · 843 阅读 · 0 评论 -
【ARM】Tiny4412裸机编程之GPIO简介
00. 目录文章目录00. 目录01. GPIO概述02. GPIO寄存器03. GPIO框图04. 附录01. GPIO概述GPIO(General Purpose I/O Ports)意思为通用输入/输出端口,通俗地说,就是一些引脚,可以通过它们输出高低电平、或者通过它们读入引脚的状态──是高电平还是低电平。在嵌入式系统中常常有数量众多,但是结构却比简单的外部设备/电路,对这些设备/电路,有的需要CPU为之提供控制手段,有的则需要被CPU用作输入信号。而且,许多这样的设备/电路只要求一位,即只要有原创 2020-08-04 16:31:09 · 1074 阅读 · 0 评论 -
【ARM】Tiny4412裸板编程之Chip ID
00. 目录文章目录00. 目录01. Chip ID概述02. 寄存器介绍03. 程序示例04. 编译执行05. 附录01. Chip ID概述The Exynos 4412 SCP includes a Chip ID block for the Software (SW) that sends and receives AdvancedPeripheral Bus (APB) interface signals to the bus system.Exynos 4412 SCP包含一个用原创 2020-08-04 11:38:28 · 1509 阅读 · 0 评论 -
【ARM】在Uboot中运行第一个汇编程序
00. 目录文章目录00. 目录01. 汇编程序02. 编译03. 下载执行04. 文件对比05. 程序示例二06. 附录01. 汇编程序汇编程序 .section .rodata .align 2.LC0: .string "hello arm\n" .section .text .align 2 .global _start_start: stmfd sp!, {lr} ldr r0, =.LC0 mov lr, p原创 2020-08-04 11:04:36 · 2213 阅读 · 1 评论 -
【ARM】ARM汇编程序设计(六) stm和ldm
00. 目录文章目录00. 目录01. ldmea指令02. ldmed指令03. ldmfa指令04. ldmfd指令05. stmea指令06. stmed指令07. stmfa指令08. stmfd指令09. swp指令06. 附录01. ldmea指令程序示例 .section .rodata .align 2.LC0: .string "hello world\n".LC1: .string "var = %p %p %p\n" .secti原创 2020-06-22 21:26:43 · 1298 阅读 · 0 评论 -
【ARM】ARM汇编程序设计(五) str和ldr
00. 目录文章目录00. 目录01. ldr伪指令02. ldr指令03. adr指令04. str指令05. 附录01. ldr伪指令ldr示例一: .section .rodata .align 2.LC0: .string "val = %p\n" .section .text .align 2 .global mainmain: push {lr} ldr r0, =.LC0 @r0 = *(.L0)原创 2020-06-22 16:55:44 · 1161 阅读 · 0 评论 -
【ARM】ARM汇编程序设计(四) 选择结构
00. 目录文章目录00. 目录01. if 结构一02. if 结构二03. if 结构三04. if 结构四05. if 结构五06. switch结构07. 附录01. if 结构一 .section .rodata .align 2.LC0: .string "i > 10\n".LC1: .string "i <= 10\n" .section .text .align 2 .global mainmain:原创 2020-06-22 15:07:21 · 931 阅读 · 0 评论 -
【ARM】ARM汇编程序设计(三) 循环结构
00. 目录文章目录00. 目录01. 循环结构-死循环02. 循环结构-累加和03. 循环结构-循环输出04. 循环结构-循环输出05. 随机数06. 综合应用一07. 综合应用二08. 综合应用三09. 附录01. 循环结构-死循环第一种方式:死循环 .section .rodata .align 2.LC0: .string "val = %p\n" .section .text .align 2 .global mainmain:原创 2020-06-22 11:31:44 · 3065 阅读 · 0 评论 -
【ARM】ARM汇编程序设计(二)
00. 目录文章目录00. 目录01. mla指令02. umull指令03. umlal指令04. smull指令05. smlal指令06. adc指令07. sbc指令08. mrs指令09. msr指令10. 综合应用一11. 综合应用二12. 综合应用三13. 综合应用四14. 综合应用五15. 综合应用六16. 综合应用七17. 综合应用八18. 综合应用九19. 综合应用十20. 附录01. mla指令程序示例 .section .rodata .align 2.LC0原创 2020-06-19 21:30:51 · 1119 阅读 · 0 评论 -
【ARM】ARM汇编程序设计(一)
00. 目录文章目录00. 目录01. 第一个汇编程序02. printf函数03. 字符串04. 进制05. mov指令06. mvn指令07. add指令08. sub指令09. rsb指令10. and指令11. bic指令12. orr指令13. eor指令14. mul指令15. 附录01. 第一个汇编程序源程序 .section .rodata .align 2.LC0: .string "hello arm" .section .text .a原创 2020-06-19 17:37:23 · 1222 阅读 · 0 评论 -
【ARM】ARM其它指令
00. 目录文章目录00. 目录01. 特殊指令介绍02. CLZ 计算前导零数目03. 饱和指令介绍04. 附录01. 特殊指令介绍Fmxr /Fmrx 指令是 NEON 下的扩展指令,在做浮点运算的时候,要先打开 vfp,因此需要用到 Fmxr 指令。Fmxr:由 arm 寄存器将数据转移到协处理器中。Fmrx:由协处理器转移到 arm 寄存器中。如图下图所示为浮点异常寄存器格式。如表 3-16 所示为 FPEXC 的位定义。FPEXC<浮点异常寄存器>,该寄存器是一个可原创 2020-06-19 12:01:02 · 3035 阅读 · 0 评论 -
【ARM】异常产生指令
00. 目录文章目录00. 目录01. 异常产生指令概述02. 软件中断指令2.1 指令的语法格式2.2 应用示例03. 附录01. 异常产生指令概述ARM 指令集中提供了两条产生异常的指令,通过这两条指令可以用软件的方法实现异常。如表 3-15 所示为 ARM 异常产生指令。02. 软件中断指令软件中断指令(Software Interrupt,SWI)用于产生软中断,从而实现从用户模式变换到管理模式,CPSR 保存到管理模式的 SPSR 中,执行转移到 SWI 向量,在其他模式下也可以使用原创 2020-06-19 11:48:55 · 1079 阅读 · 0 评论 -
【ARM】协处理器指令
00. 目录文章目录00. 目录01. 协处理器指令概述02. ARM寄存器到协处理器寄存器的数据传送指令MCR2.1 指令编码格式2.2 指令的语法格式2.3 指令举例2.4 指令的使用03. 协处理器寄存器到ARM寄存器的数据传送指令MRC3.1 指令编码格式3.2 指令的语法格式3.3 指令举例3.4 指令的使用04. 附录01. 协处理器指令概述ARM 体系结构允许通过增加协处理器来扩展指令集。最常用的协处理器是用于控制片上功能的系统协处理器。例如,控制 Cache 和存储管理单元的 cp15原创 2020-06-19 11:38:56 · 1363 阅读 · 0 评论 -
【ARM】MRS MSR指令
00. 目录文章目录00. 目录01. 状态操作指令概述02. MRS2.1 指令的语法格式2.2 指令示例03. MSR3.1 指令的语法格式3.2 应用示例04. 综合应用4.1 使能 IRQ 中断4.2 禁止 IRQ 中断4.3 堆栈指令初始化05. 附录01. 状态操作指令概述ARM 指令集提供了两条指令,可直接控制程序状态寄存器(Program State Register,PSR)。MRS 指令用于把 CPSR 或 SPSR 的值传送到一个寄存器;MSR 与之相反,把一个寄存器的内容传送到原创 2020-06-19 11:20:56 · 1460 阅读 · 0 评论