嵌入式裸板开发部分(其他在书上)


主要针对的cotex-A7/8,两种核的认识过程。A7核对应的芯片为QG2101A,A8对应的芯片为s5p210.
== 注:这部分舍去吧,讲的不是很明白。所有的知识点都放到自己的书上,这样专心实验就可以,不用再做笔记了==

基本知识累积

什么是eMMC存储器?

eMMC是embedded Multi Media Card的简称,即嵌入式多媒体卡, 是一种闪存卡的标准。主要针对手机或平板电脑等产品的内嵌式存储器标准规格.采用统一的MMC标准接口, 把高密度NAND Flash以及MMC Controller封装在一颗BGA芯片中。

A7及A8启动方式及流程

内部boot模式

在此模式下,芯片会执行内部的 boot ROM 代码,这段 boot ROM 代码会进行硬件初始化(一部分外设),然后从 boot 设备(就是存放代码的设备、比如 SD/EMMC、NAND)中将代码拷贝出来复制到指定的 RAM 中。

串行下载模式

通过 USB 或者 UART 将代码下载到板子上的外置存储设备中,向开发板上的 SD/EMMC、NAND 等存储设备下载代码。

实现启动模式选择

一般都是类似于stm32的管脚设置的方式。模式里面的不同设备的选择也是通过管脚设置。

镜像文件内容

①、Image vector table,简称 IVT,IVT 里面包含了一系列的地址信息,这些地址信息在ROM 中按照固定的地址存放着。
②、Boot data,启动数据,包含了镜像要拷贝到哪个地址,拷贝的大小是多少等等。
③、Device configuration data,简称 DCD,设备配置信息,重点是 DDR3 的初始化配置。
④、用户代码可执行文件,比如 led.bin。在A7中内部 Boot
ROM 会将 load.imx 拷贝到 DDR 中,用户代码是要一定要从 0X87800000 这个地方开始的,因为链接地址为 0X87800000,load.imx 在用户代码前面又有 3KByte 的 IVT+Boot Data+DCD 数据,因此 load.imx 在 DDR 中的起始地址就是 0X87800000-3072=0X877FF400。
对于A8而言,就是前16个字节,保存一个校验和。程序210.bin 最终就是被拷贝到IRAM 的起始地址0xD0020000处,因为bin文件中包含了16byte的头部,代码的真实起始地址是0xD0020010,所以上述启动序列的第七步是跳转到IRAM的0xD0020010地址上继续运行

实际遇到的问题

如何将虚拟机编译好的ARM程序下载到开发板?此问题已经解决,实则是可以的,不过要按ctrl键,右击发送文件

CRT上的Zmode方式就不说了,就是麻烦点,能否用常用的moba实现呢?当前还不可以
查了一下,moba是不支持zmode的,只支持ssh连接后的ftp上传及下载。但也扩展了下原来还有sz和rz命令,这样方便的上传及下载命令。

xmode与ymode 、zmode分别是什么?了解下

sz和rz命令的原理其实是来源于下面四个文件传输协议:
XModem是一种发送等待(send-and-wait)协议, 具有流量控制功能。数据长度为128字节。
YModem是XModem的改进版。它可以传送多个文件,数据长度可达1K字节且支持16位CRC校验。
ZModem不但具有纠错功能,而且是一种流式协议。它不再以收方发ACK引导。
KERMIT类似于XModem,但它对XModem进行了改进,可以传输多个文件,错误检测方式明显改善。同时KERMIT还提供压缩功能。

sz与rz命令代表什么

嵌入式linux作为服务器
sz 表示服务器发文件到PC
rz表示要接收文件,来自PC的文件
所以服务器端要安装上sz与rz两条命令包:

wget http://www.ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz 
tar zxvf lrzsz-0.12.20.tar.gz && cd lrzsz-0.12.20 
./configure && make && make install
# 创建软链接,这样就可以直接使用rz和sz了
cd /usr/bin 
ln -s /usr/local/bin/lrz rz 
ln -s /usr/local/bin/lsz sz

使用crt时,可以通过 session opetion,设置好zmode默认的上传及下载目录。
此种方式,需要将arm板当作服务器,不太现实,资源有限。

运行开发板上第一个hello程序,遇到./hello: Permission denied

权限问题,执行chmod u+x hello,即可。
原理:首先执行 ls --all,可以看到文件的所有者及权限为:rw-r-r
就是没有x,执行权限,而u:表示所有者,所以用chmod更改权限后变为rwxr-r解决。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

guangod

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值