ARM裸机-10

这篇具有很好参考价值的文章主要介绍了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来使用了。

        文章来源地址https://www.toymoban.com/news/detail-621333.html

        

到了这里,关于ARM裸机-10的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ARM(IMX6U)嵌入式软件裸机开发之环境搭建与配置

    目录 前沿 Ubuntu 和 Windows 文件互传 Ubuntu 下 NFS 和 SSH 服务开启  Ubuntu 交叉编译工具链安装 Source Insight 软件安装和使用 Visual Studio Code 软件的安装和使用 为什么我们要学习裸机开发呢?         1、裸机开发是了解所使用的 CPU 最直接、最简单的方法,比如使用的 I.MX6U,跟

    2023年04月15日
    浏览(44)
  • arm学习stm32之spi总线数码管倒计时,裸机开发,soc

    由于时间没有用时间计时器操作,有些误差,后续有空会翻新计时器版本 main.c spi.c spi.h

    2024年02月16日
    浏览(49)
  • ARM裸机 - 中断处理编程实战_arm断电文件内容丢失

    #define exception_vector_table_base 0xD0037400 #define exception_reset (exception_vector_table_base + 0x00) #define exception_undef (exception_vector_table_base + 0x04) #define exception_sotf_int (exception_vector_table_base + 0x08) #define exception_prefetch (exception_vector_table_base + 0x0C) #define exception_data (exception_vector_table_base + 0x10) #de

    2024年04月16日
    浏览(81)
  • 【ARM 裸机】硬件平台简介

    硬件平台采用的是正点原子的 I.MX6ULL-MINI 开发板,分为底板和核心板; 正点原子 Mini 开发板的外形尺寸为 100mm*130mm,I.MX6U-Mini 开发板底板板载资源如下: ◆ 1 个核心板接口,支持 I.MX6ULL 核心板。 ◆ 1 个电源指示灯(蓝色)。 ◆ 1 个状态指示灯(红色)。 ◆ 1 路 CAN 接口,

    2024年04月14日
    浏览(37)
  • ARM裸机-3

            主流的单片机平台:51、PIC、STM32、AVR、MSP430等         主流的嵌入式平台:ARM、PPC、MIPS         单片机片上资源有限、价格低、应用领域多为小家电、终端设备等。         嵌入式系统片上资源丰富、价格较高、应用领域宽广,例如智能手机、平板电脑、游戏机

    2024年02月15日
    浏览(49)
  • qemu-基础篇——arm 裸机调试环境搭建

    裸机篇系列文章主要用于熟悉 arm 汇编及处理器结构 本系列使用 mcimx6ul-evk mcimx6ul-evk 0x80000000-0xFFFFFFFF 2048MB 空间为 DDR 地址,所以将程序链接到 0x80000000 。 通过-Ttext 选项,可以指定链接地址 -s :监听在 gdb 1234 端口 -S :表示启动后就挂起,等待 gdb 连接 -kernel 指定启用的内核

    2024年01月21日
    浏览(40)
  • 【ARM 裸机】汇编 led 驱动之烧写 bin 文件

    bin 文件烧写到哪里呢?使用 STM32 的时候烧写到内部 FLASH,6ULL 没有内部 FLASH,是不是就不能烧写呢?不,6ULL 支持 SD卡、EMMC、NAND FLASH、NOR FLASH 等方式启动,在裸机学习的工程中,选择 SD卡启动,所以将 bin 文件烧写到 SD卡中。 烧写并不是将 bin 文件直接拷贝到 SD卡中,而是

    2024年04月28日
    浏览(37)
  • Qt5开发环境-银河麒麟V10ARM平台

    前言 近期因参与开发的某个软件需要适配银河麒麟v10arm 平台,于是自己搭建起一套Qt 开发环境,在此记录下具体过程,以供有需要的朋友参考。一开始手上并没有Arm架构的PC,先在Windows下用Vs2017和QtCreator 开发,软件开发快结束的时候Arm PC到了。Qt 没有提供可直接安装的arm架

    2024年02月12日
    浏览(61)
  • 【ARM裸机编程 | 海思SS528】- 操作 GPIO 寄存器输出低电平点亮 LED 灯

    这篇文章主要介绍在 海思SS528 开发板,去操作某个 GPIO 寄存器输出高、低电平,来熄灭或点亮 LED 灯。 首先,了解一下 ARM裸机编程 ,也就是在一块没有移植操作系统的ARM开发板去编程,相当于把它当成单片机去使用,很多与硬件相关的操作都需要直接读写该硬件的寄存器。

    2024年02月10日
    浏览(43)
  • GCC - 基于win10平台搭建Cmake + MinGW + gcc-arm-none 开源开发环境

    基于GUN开源工具链,搭建Windows平台下 ARM 编译运行环境! 🐱‍🚀 文中涉及的开发工具包已打包上传 ,可点击此处下载。 1、 建议直接下载安装git (内部集成有该工具),也可点击此处单独下载Git Bash工具; 2、如无法直接调用,添加对应环境变量; 32位下载地址:  MinG

    2024年02月10日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包