ARM裸机-10
1、X210开发板和光盘资料
1.1、配置信息
CPU:三星S5PV210
内存:512M DDR2 SDRAM
Flash:4GB iBand
LCD:7寸,分辨率800x480
触摸屏:电容触摸屏
2、X210开发板硬件手册
3、X210开发板刷系统
3.1、什么是刷系统
刷系统就是利用刷机工具,向开发板中烧录预先编译好的系统镜像,使之在开发板上运行起来。
3.2、串口输出的意义(做系统控制台)
串口是一种硬件通信口,很多年前的时候串口是CPU之间进行通信的主要接口。但是现在因为串口通信的速度很低,所以现在串口主要是用来做程序输出监控、调试。嵌入式系统一般是用串口来做控制台的,用一根串口线连接开发板的串口和我们笔记本的串口,然后在电脑上打开一个串口监视,这样开发板上的串口输出内容就可以在电脑上看到。还可以通过监视终端向开发板输入一些控制命令由开发板执行。
3.3、安装USB转串口线的驱动
这种线传入电脑后需要安装驱动,安装驱动后在电脑上会形成一个串口 (叫usb转串口),这样就相当于你电脑有了一个串口,可以通过这个串口来监视开发板的串口输出。
注意:
(1)windows对USB设备的管理是和USB口有关的,你每次把usb转串口线插到同一个口中,这样得到的COM口号码是不变的,方便我们后期使用。如果每次胡乱更换插口,可能得到的COM口会变。
(2)COM口号码是可以改的,还可以强制占用显示“已使用”的COM号,一般改成COM4以内的就可以了。
3.4、使用SecureCRT
从网盘下载SecureCRT.rar,解压后直接使用。注册时参考解压包中的说明.txt。
打开SecureCRT.exe后,建立一个Serial连接,开始监视串口,注意留控一定要去掉,不然什么都看不到。
开发板这边串口一定要接串口2(官方出厂默认的是烧录镜像都是串口2的),然后开机,就可以看到串口信息了。
3.5、破坏iNand中的bootloader以从SD2启动
看x210v3s开发板SD卡烧写教程,输入命令:
//进入 android 系统控制台,执行如下指令:
busybox dd if=/dev/zero of=/dev/block/mmcblk0 bs=512 seek=1 count=1 conv=sync
//为了确保执行数据有效,再执行 sync 同步一下,即可破坏掉前一个块的数据。
sync
解释:这句话的意思就是说把板载的iNand的第一个扇区用全0来填充,其实就是擦除它,这样我们板载的iNand的bootloader的开始第1个扇区就被破坏了。将来启动时iROM还是会先从iNand中读取前16KB,然后计算校验和。这时候因为有1个区被擦掉了所以校验和不通过,所以启动失败 (会从SD2去执行2nd启动)。
注意:破坏板载iNand的bootloader后,不插外部SD卡,启动时串口得到: SD checksum Error
3.6、制作启动SD卡(其实就是烧录uboot到SD卡中)
有两种烧写方法:一种是在Windows中用刷卡工具去制作启动SD卡;另一种是在linux中用dd命令。
这里介绍的是第一种(比较简单)。刷卡工具用的是x210_Fusing_Tool。
制作完SD后将SD卡插入开发板SD2通道(注意不是SD3),然后开机就可以进入uboot界面了。在uboot开机自动启动倒数3秒之内迅速按下电脑回车键,打断自动启动。 (否则会自动启动iNand中的android)
3.7、fastboot介绍
fastboot是uboot中用来快速下载镜像的一个命令,fastboot同时还是一个windows上的软件。
3.7.1、fastboot下载时要注意
(1)fastboot是使用USB线进行数据传输的,所以fastboot执行之前要先连接开发板和主机之间的usb线(usb-otg那根)。
(2)需要安装驱动。dnw_driver
3.7.2、fastboot常用命令
fastboot devices //命令用来查看当前连接的设备(我们开发板看到的是:SMDKC110-01)
fastboot flash xxx //命令用来烧录的
fastboot reboot //命令用来重启系统
3.7.3、使用fastboot烧录android4.0.4镜像
在cmd下使用以下三个命令来完成烧录
fastboot flash bootloader android4.0/uboot.bin //烧uboot
fastboot flash bootloader android4.0/zImage-android //烧linux kernel
fastboot flash bootloader android4.0/x210.img //烧android rom
//在这里是把uboot.bin、zImage-android、x210.img都放在了bootloader的根目录下的android4.0文件夹中
3.7.3、使用fastboot烧录linux+QT
fastboot flash bootloader linuxQT/uboot_iland.bin //烧uboot
fastboot flash bootloader linuxQT/zImage-qt //烧linux kernel
fastboot flash bootloader linuxQT/rootfs_qt4.ext3 //烧rootfs
uboot的参数不用特意设置(因为我们刷了转为linux+QT定制的uboot,这个uboot中估计已经预制好了所有的启动参数)
4、X210核心板、底板原理图
写代码时需要查阅和参考的资料有:核心板原理图、底板原理图、相应硬件的数据手册、S5PV210数据手册
4.1、原理图、PCB图、丝印图各自是什么
原理图是电路原理设计图,各个电路中的部件的逻辑连接图。
PCB图是我们用来制作电路板,并且用电路板进行原件焊接,做成最终产品的生产性图纸。先有原理图设计,然后根据原理图来设计PCB图。PCB图是对原理图的一种实现。原理图和PCB图一般都由硬件工程师负责,但是原理图设计时软件工程师会一定程度参与。PCB的设计就完全是硬件工程师的事情了,与软件工程师无任何关系。
丝印图是PCB图设计中,所有原件的外框的框图。丝印图其实就是整个电路板的实体的位置图纸,与软件和功能无关,与生产制造有关。对软件工程师来说,丝印图可以不理会。
4.2、原理图对嵌入式软件工程师的意义
原理图是电路的逻辑连接,对于可编程器件来说,不同的电路连接可能意味着不同的编程参数,因此底层软件工程师会需要查阅原理图的接法,从而决定自己的软件怎么写才能正确和硬件通信。
4.3、嵌入式软件开发人员对硬件掌握程度的要求
软件工程师分应用开发和底层开发两大块。对于应用开发工程师(直接基于操作系统来开发程序,调用操作系统的API和库函数等写代码)来说,硬件完全被操作系统屏蔽了,可以完全不关心硬件,但是对于底层软件工程师(驱动开发的、单片机的、移相操作系统的)来说,看懂原理图和数据手册是非常有必要的,PCB图就没必要会了。
注意:一般来说,总工程师都是软硬都会的,这个人一般软件硬件都做过。
5、数据手册
5.1、datasheet(数据手册)的作用
数据手册一般就是产品(一般是芯片)厂家编写的,对这个产品的所有功能和用法的描述统一说明的文档。
5.2、数据手册的正确读法
先通读概览,然后根据需要去查阅
学会利用文档目录
利用好pdf阅读器的搜索功能
6、usb启动配合dnw工具下载
6.1、背景知识
回顾S5PV210的启动方式,必须将OM5打到VCC,才能从USB启动。
S5PV210的启动过程,开机时先执行内部的iROM中的BL0,然后BL0做了一系列的初始化后,再读取外部OMpin的设置来确定用户择了从哪里启动。当检测到我们设置的是USB启动时,S5PV210就会从USB OTG接口试图连接主机进行下载启动。
6.2、dnw工具介绍
dnw是一个软件,是三星公司编写的,这个软件的功能是通过USB线连接开发板和电脑主机,然后从主机下载文件镜像到开发板中去烧录系统。
dnw软件使用注意1:dnw是需要usb驱动的,驱动在"X210光盘资料\A盘\tools\USB驱动”目录中
dnw软件使用注意2:dnw使用时通过usb线下载,所以一定要插USB线。
dnw软件使用注意3:dnw下载时需要设置dnw下载内存地址。在dnw软件的菜单"Confiquration"中设置Download Address为0xd0020010,确认即可。
6.3、dnw驱动安装
X210开发板使用了软开关,但是我们这里还没到操作系统没去处理开关,所以在整个裸机实验中必须手工按下POWER键才能保持开机,只要手一抬起来就关机了...
dnw驱动装好的标志是:开发板开机从usb启动后,设备管理器中显示已经安装的设备,并且关键是dnw工具中USB:OK
从usb启动做裸机实验时,因为不需要16字节的校验头,所以直接下载到0xd0020010
usb启动方式主要是用来调试程序的,其实分析S5PV210即可知道,我们这里是把裸机程序当作BL1来使用了。
相关文章:
ARM裸机-10
1、X210开发板和光盘资料 1.1、配置信息 CPU:三星S5PV210 内存:512M DDR2 SDRAM Flash:4GB iBand LCD:7寸,分辨率800x480 触摸屏:电容触摸屏 2、X210开发板硬件手册 3、X210开发板刷系统 3.1、什么是刷…...
「C/C++」C/C++指针详解
✨博客主页何曾参静谧的博客📌文章专栏「C/C」C/C程序设计📚全部专栏「UG/NX」NX二次开发「UG/NX」BlockUI集合「VS」Visual Studio「QT」QT5程序设计「C/C」C/C程序设计「Win」Windows程序设计「算法」数据结构与算法「File」数据文件格式 目录 一、术语…...
提高电脑寿命的维护技巧与方法分享
在维护电脑运行方面,我有一些自己觉得非常有用的技巧和方法。下面我将分享一些我常用的维护技巧,并解释为什么我会选择这样做以及这样做的好处。 首先,我经常清理我的电脑内部的灰尘。电脑内部的灰尘会影响散热效果,导致电脑发热…...
React常见面试题
React常见面试题 一、React中的样式管理有哪些方法 内联样式:对象,作用于当前组件普通样式表: 作用于全局,文件名是:xxx.scssCSS模块:类似Vue的scoped, 文件名需是:xxx.module.scs…...
C++中数据的输入输出介绍
C中数据的输入输出介绍 C中数据的输入输出涉及到的文件 <iostream>:这是C标准库中最常用的头文件之一,包含了进行标准输入输出操作的类和对象,如std::cin、std::cout、std::endl等。 <iomanip>:该头文件提供了一些用…...
0101日志-运维-mysql
1 错误日志 错误日志(Error Log):错误日志记录了MySQL引擎在运行过程中出现的错误和异常情况。这些错误可能包括启动和关闭问题、数据库崩溃、权限问题等。错误日志对于排查和解决MySQL引擎问题非常有帮助。 改日志默认开启,默认存…...
LabVIEW使用灰度和边缘检测进行视频滤波
LabVIEW使用灰度和边缘检测进行视频滤波 数字图像处理(DIP)是真实和连续世界的离散表示。除此之外,这种数字图像在通信、医学、遥感、地震学、工业自动化、机器人、航空航天和教育等领域变得非常重要。计算机技术越来越需要视频图像的数字图…...
SpringBoot整合WebService
SpringBoot整合WebService WebService是一个比较旧的远程调用通信框架,现在企业项目中用的比较少,因为它逐步被SpringCloud所取代,它的优势就是能够跨语言平台通信,所以还有点价值,下面来看看如何在SpringBoot项目中使…...
【LangChain】向量存储之FAISS
LangChain学习文档 【LangChain】向量存储(Vector stores)【LangChain】向量存储之FAISS 概要 Facebook AI 相似性搜索(Faiss)是一个用于高效相似性搜索和密集向量聚类的库。它包含的算法可以搜索任意大小的向量集,甚至可能无法容纳在 RAM 中…...
小研究 - 主动式微服务细粒度弹性缩放算法研究(三)
微服务架构已成为云数据中心的基本服务架构。但目前关于微服务系统弹性缩放的研究大多是基于服务或实例级别的水平缩放,忽略了能够充分利用单台服务器资源的细粒度垂直缩放,从而导致资源浪费。为此,本文设计了主动式微服务细粒度弹性缩放算法…...
驱动开发相关内容复盘
并发与竞争 并发 多个“用户”同时访问同一个共享资源。 竞争 并发和竞争的处理方法 处理并发和竞争的机制:原子操作、自旋锁、信号量和互斥体。 1、原子操作 原子操作就是指不能再进一步分割的操作,一般原子操作用于变量或者位操作。 …...
2.2 身份鉴别与访问控制
数据参考:CISP官方 目录 身份鉴别基础基于实体所知的鉴别基于实体所有的鉴别基于实体特征的鉴别访问控制基础访问控制模型 一、身份鉴别基础 1、身份鉴别的概念 标识 实体身份的一种计算机表达每个实体与计算机内部的一个身份表达绑定信息系统在执行操作时&a…...
C++ 注释
程序的注释是解释性语句,您可以在 C 代码中包含注释,这将提高源代码的可读性。所有的编程语言都允许某种形式的注释。 C 支持单行注释和多行注释。注释中的所有字符会被 C 编译器忽略。 C 注释一般有两种: // - 一般用于单行注释。 /* … …...
Spring事务(声明式事务)(Spring的事务,Spring隔离级别,事务传播机制)
目录 一、什么是事务,为什么要用事务 二、Spring声明式事务 🍅 1、Transactional的使用 🎈 事务回滚 🎈注意:异常被捕获,不会发生事务回滚 🍅 2、Transactional 作⽤范围 🍅 …...
Linux运维面试题(四)之Linux服务管理
Linux运维面试题(四)之Linux服务管理 4.1 SSHSSH的登录验证方式SSH的登陆端口(默认22)和监听设置(/etc/ssh/sshd_config)SSH的登录用户限制(/etc/ssh/sshd_config PermitRootLogin)SSH的登录超时设置(/etc/…...
ChatGPT能否撰写科研论文?
ChatGPT,这款被许多人誉为语言处理领域的“黑马”,究竟能否应用于撰写科研论文?近期,以色列理工学院生物学家兼数据科学家Roy Kishony带领的团队,针对这一问题进行了系列研究,其结果已在《Nature》杂志上发…...
2023 电赛 E 题 K210方案
第一章:K210 介绍 K210芯片是一款基于RISC-V架构的嵌入式人工智能芯片,具备低功耗、高性能的特点。它拥有强大的图像处理和机器学习能力,适用于边缘计算设备和物联网应用。为了方便开发者,K210芯片提供了丰富的外设接口ÿ…...
网络知识介绍
一、TCP 传输控制协议,Transmission Control Protocol。 面向广域网的通信协议,跨域多个网络通信时,为两个通信端点之间提供一条具有如下特点的通信方式: 基于流、面向连接、可靠通信方式、网络状况不佳时尽量降低系统由于重传带…...
MapStruct设置全局的ComponentModel
在mapStruct上边,如果我们要切换成非默认的组件模式,常常要在Mapper注释中添加componentModel "spring",如果类太多的了的话,非常麻烦,有没有更好的方式呢,有的,可以在pom中添加一个…...
LinearAlgebraMIT_6_ColumnSpaceAndNullSpace
这节课的两个重点是column space列空间和null space零空间。 x.1 pre-multiply/left multiply and post-multiply/right multiply 对于pre-multiply/left multiply左乘和post-multiply/right multiply右乘,如果用英文的pre-和post-是比较容易理解的, A…...
TI毫米波雷达实战:从mmWave Studio配置到3D-FFT点云生成的保姆级教程
TI毫米波雷达实战:从硬件连接到3D-FFT点云生成的完整指南 毫米波雷达技术正在工业检测、自动驾驶和智能家居领域掀起革命。作为TI毫米波雷达开发的核心工具链,mmWave Studio与DCA1000的组合为工程师提供了从信号采集到高级处理的完整解决方案。本文将带您…...
Obsidian 完整使用手册 — 目录与索引
Obsidian 完整使用手册 — 目录与索引 一份从入门到精通的 Obsidian 全面指南,涵盖基础操作、核心功能、插件生态、同步备份与进阶技巧。 手册列表 编号手册名称内容概要01基础入门篇软件安装、界面布局、库管理、核心设置02Markdown 语法篇格式化语法、扩展语法、…...
使用Taotoken后如何通过用量看板清晰掌握各模型API消耗情况
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 使用Taotoken后如何通过用量看板清晰掌握各模型API消耗情况 当你将多个大模型API的调用统一接入到Taotoken平台后,一个…...
Qt实战:手把手教你打造一个可动态配置的数值输入组件(基于QDoubleSpinBox封装)
Qt实战:构建可动态配置的数值输入组件的高级封装策略 在复杂的Qt应用开发中,数值输入控件是用户交互的重要组成部分。标准QDoubleSpinBox虽然提供了基础功能,但在实际企业级应用中往往需要更灵活的配置能力和更精细的行为控制。本文将深入探讨…...
别只会用!cat了:在Kaggle Notebook里动态编辑YOLOv5配置文件的完整攻略
突破Kaggle只读限制:YOLOv5配置文件动态编辑全指南 在Kaggle Notebook中进行计算机视觉项目开发时,许多开发者都遇到过这样的困境:当需要修改YOLOv5模型配置文件时,发现Kaggle的/kaggle/input目录是只读的。本文将介绍三种专业级解…...
如何用AI语音修复工具VoiceFixer拯救你的受损录音:终极指南
如何用AI语音修复工具VoiceFixer拯救你的受损录音:终极指南 【免费下载链接】voicefixer General Speech Restoration 项目地址: https://gitcode.com/gh_mirrors/vo/voicefixer 还在为那些珍贵的录音因为各种原因变得模糊不清而烦恼吗?VoiceFixe…...
基于VSCode Remote-SSH的嵌入式Linux开发环境配置与实战
1. 嵌入式开发流程的痛点与优化思路 作为一名在嵌入式行业摸爬滚打了十多年的老工程师,我太清楚传统开发流程里那些让人头疼的环节了。我们最熟悉的模式,就是在PC上写好代码,用交叉编译工具链生成目标板(比如ARM架构的开发板&…...
iOS 18.1 5G功能深度解析:从智能省电到SA网络优化
1. 项目概述:一次聚焦于连接体验的深度更新作为一名长期跟踪移动操作系统生态的从业者,每次苹果发布新的iOS版本,我都会习惯性地去拆解其更新日志,看看哪些是“面子工程”,哪些是真正触及用户体验核心的“里子升级”。…...
HCV Core Protein (59-68);RGRRQPIPKA
一、基础信息多肽名称:丙型肝炎病毒 核心蛋白片段 (59-68) 英文名称:HCV Core Protein (59-68) 三字母序列:Arg-Gly-Arg-Arg-Gln-Pro-Ile-Pro-Lys-Ala 单字母序列:RGRRQPIPKA 氨基酸数量:10 aa 结构特征:线…...
从C++代码到机器指令:用OD和IDA手把手拆解一个简单的main函数(附寄存器图解)
从C代码到机器指令:用OD和IDA手把手拆解一个简单的main函数(附寄存器图解) 在逆向工程的世界里,理解高级语言如何转化为底层机器指令是一项基础而关键的技能。本文将以一个最简单的C main 函数为例,带你一步步追踪其从…...
