lv11 嵌入式开发 FS4412开发环境搭建 8

目录

1 开发板硬件资源介绍 

2 初始原理图

3 交叉开发环境搭建

3.1 在ubuntu下安装交叉编译工具链    

3.2 在windows下安装SecureCRT    

3.3 在windows下安装USB转串口驱动

3.4 下载测试程序

4 硬件控制原理

4.1 地址映射表

4.2 查看数据手册


1 开发板硬件资源介绍 

2 初始原理图

元器件查找    

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

3 交叉开发环境搭建

3.1 在ubuntu下安装交叉编译工具链    

交叉编译工具链 -Ubuntu 安装说明
【目的】
了解交叉编译工具链的安装方法与使用方法
【实验环境】
ubuntu 14.04 发行版
【注意事项】
实验步骤中以“ $ ”开头的命令表示在 ubuntu 环境下执行
【实验步骤】
1 、安装交叉编译工具链
ubuntu 下打开一个终端并进入到家目录
$ cd ~
在家目录下创建“ Linux_4412/toolchain ”目录用于存放交叉编译工具链
$ mkdir -p Linux_4412/toolchain
进入到该目录下
$ cd Linux_4412/toolchain/
将资料中“ 1. 交叉编译工具链”下的 gcc-4.6.4.tar 拷贝到该目录下解压“gcc-4.6.4.tar.xz
$ tar xvf gcc-4.6.4.tar.xz
2 、将交叉编译工具链添加到全局环境变量使其全局可用
回到家目录
$ cd ~
打开家目录下的配置文件“ .bashrc
$ vi .bashrc
如图在配置文件的最后一行添加如下内容,将交叉编译工具链的安装路径添加到了全局环境变量中,然后保存退出
注:每个人 ubuntu 所使用的用户名可能不同,所以家目录的路径可能有差异,这里根据自己的实际情况进行设置
$ source ~/.bashrc
重启配置文件使配置生效
执行以下命令
$ arm-none-linux-gnueabi-gcc -v
有以下信息打印则表示安装成功
注:若使用的是 ubuntu 16.04 或更高的版本( 64 ubuntu ),需要安装 32 位库
$ sudo apt-get install lib32z1 lib32ncurses5
查看可执行程序的运行环境:
x86 32位

arm 32位 

3.2 在windows下安装SecureCRT    

3.3 在windows下安装USB转串口驱动

略   

3.4 下载测试程序

1. 如图所示,先检查核心板是否正确安插在底板上( 检查是否有松动,安插方向是否正确 ),
确保 SD 卡已正确插入卡槽( 检查安插是否有松动 )。然后将 USB 转串口线的一端插到电脑
USB 接口,另一端插到开发板对应的端口( 中间位置 ),然后使用电源线给开发板供电

2. 如下图所示,调整拨码开关的位置,将开发板设置成 SD 卡启动模式 

 

3. 右击“我的电脑”选择“管理”

4. 在弹出的对话框中单击“设备管理器”,然后单击“端口(COM LPT)”左侧下拉条,查看 CH340 使用的端口号(插在不同的 USB 口上端口号不同

 

5. 双击运行“SecureCRT 

6. 在弹出的对话框中设置连接属性,协议选择使用“ Serial ”(串口)连接,端口选择 CH340 在设备管理器中显示的端口,波特率选择“115200 ”,其他选项使用默认即可,设置完成后 单击“Connect ”即可连接开发板与 SecureCRT 终端

注:第一次设置完成以后再打开可直接选择使用该连接,无需重复设置 

7. 如图所示,进入终端界面后若显示该标志则表示连接成功
8. 打开开发板电源,终端界面会显示如下相关信息( 不同的开发板显示的信息可能不同 ), 然后 马上 按下回车键(开发板上电之后可能会显示下图所示的倒计时信息,倒计时结束后开 发板会启动 Linux 系统,现在开发板还没有安装 Linux 系统,所以在倒计时结束之前按下回 车键使其停留在 uboot )使界面停留在 uboot

 

9. 如图所示,在 uboot 界面下输入“ loadb 40008000 ”命令(表示要将程序到下载到内存
中的 0x40008000 地址)

 

10. 单击“Transfer”,然后选择“Send Kermit..”(即使用 Send Kermit..协议下载程序) 

 

11. 在弹出的对话框中选择资料中提供的测试程序,双击选中,然后单击“OK 

12. 如图所示,若显示如下内容,则表示程序下载成功 

13. 在终端输入“ go 40008000 ”命令(即表示跳转到 0x40008000 地址执行程序),程序开
始运行,观察开发板上的 LED 是否闪烁

 

1 :若要重新下载程序,需要先将开发板电源关闭,然后重复步骤 8~12
2 :以上步骤是将程序下载到了开发板的内存,断电之后程序不会保存
3 :若步骤 8 中没有任何信息显示,可尝试调整拨码开关使用 EMMC 启动

 

4 硬件控制原理

CPU本身是不能直接控制硬件的,硬件一般是由其对应的控制器来控制, SOC中将各个硬件控制器的寄存器映射到了CPU地址空间中的一段范围,这样CPU就可以通过读写寄存器来间接控制硬件

注:这里的寄存器在SOC中但在CPU之外,有地址,访问方式与内存一样,常用于控制硬件

4.1 地址映射表

在一个处理器中,一般会将Flash、RAM、寄存器等存储设备分别映射到寻址空间中的不同地址段,我们将这个映射关系成为这个处理器的地址映射表

如:windows中网卡映射地址

4.2 查看数据手册

数据手册总共2800页,学会如何快速查阅。看总览,看目录找到需要的资料。

芯片概述

内存映射

0x00000000-0xFFFFFFFF 32位机器的地址空间,4GB大小。

IROM 三星内部的程序

IRAM 256k内存,可以放变量和堆栈

SFR region 特殊功能寄存器,对硬件控制0x1000_0000-0x1400_000,都是外设寄存器地址空间,另有一张表对应

Memory of Dynamic Memory Controller (DMC)-0   0x4000_0000 -0x8000_00000,开发板扩展了4块内存的地址,最后-0xFFFFFFFF没有使用 

1.简述交叉编译器和普通编译器的本质区别是什么

普通编译器在操作系统所在的平台上编译工具,能在本平台运行

交叉编译器在一个平台开发,生成的文件在不同的平台上运行,这种情况主要是目标平台可能是不同的操作系统或者处理器架构。


2.简述ARM处理器中的寄存器(如PC、LR、SP)与硬件控制器中的寄存器的本质区别是什么

PC(程序计数器)寄存器:保存下一条要执行的指令的地址。
LR(链接寄存器)寄存器:用于存储函数调用的返回地址,即函数执行完毕后将返回到哪个地址继续执行。
SP(栈指针)寄存器:用于指向当前栈顶的地址,用于管理函数调用时的局部变量和函数调用栈。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/208555.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

外网IP和内网ip的区别

首先得先知道什么是ip地址,它就是唯一标识连接网络的设备的,即IP地址充当了设备在网络中的“住址”,使得设备能够相互通信和交换数据。 我们常听开发人员说外网内网,那么它们有什么区别呢? 外网可以理解为互联网&…

开发上门送桶装水小程序要考虑哪些业务场景

上门送水业务已经有很长一段时间了,但是最开始都是给用户发名片、贴小广告,然后客户电话订水,水站工作人员再上门去送,这种人工记单和派单效率并不高,并且电话沟通中也比较容易出现偏差,那么根据这个情况就…

二分查找——经典题目合集

文章目录 🦜69. x 的平方根🌼题目🌻算法原理🌷代码实现 🐳35. 搜索插入位置🌼题目🌻算法原理🌷代码实现 🦭852. 山脉数组的峰顶索引🌼题目🌻算法原…

简单几步,借助Aapose.Cells将 Excel XLS 转换为PPT

数据呈现是商业和学术工作的一个重要方面。通常,您需要将数据从一种格式转换为另一种格式,以创建信息丰富且具有视觉吸引力的演示文稿。当您需要在幻灯片上呈现工作表数据时,需要从 Excel XLS 转换为 PowerPoint 演示文稿。在这篇博文中&…

原理Redis-QuickList

QuickList **问题1:**ZipList虽然节省内存,但申请内存必须是连续空间,如果内存占用较多,申请内存效率很低。怎么办? 为了缓解这个问题,我们必须限制ZipList的长度和entry大小。 **问题2:**但是…

Head、Neck、Backbone介绍

在深度学习中,通常将模型分为三个部分:backbone、neck 和 head。 Backbone:backbone 是模型的主要组成部分,通常是一个卷积神经网络(CNN)或残差神经网络(ResNet)等。backbone 负责…

Redis-Redis缓存高可用集群

1、Redis集群方案比较 哨兵模式 在redis3.0以前的版本要实现集群一般是借助哨兵sentinel工具来监控master节点的状态,如果master节点异常,则会做主从切换,将某一台slave作为master,哨兵的配置略微复杂,并且性能和高可…

视频直播美颜SDK全面解析:美颜SDK技术对比

美颜SDK的出现,为直播主和用户提供了更丰富的美颜体验。 一、美颜SDK的基本原理 美颜SDK多种技术协同工作,使得直播画面更加细腻、自然,给用户带来更好的视觉感受。不同的SDK可能采用不同的算法和处理流程,从而产生各具特色的美…

深度学习图像修复算法 - opencv python 机器视觉 计算机竞赛

文章目录 0 前言2 什么是图像内容填充修复3 原理分析3.1 第一步:将图像理解为一个概率分布的样本3.2 补全图像 3.3 快速生成假图像3.4 生成对抗网络(Generative Adversarial Net, GAN) 的架构3.5 使用G(z)生成伪图像 4 在Tensorflow上构建DCGANs最后 0 前言 &#…

万界星空科技QMS质量管理系统介绍

QMS(Quality Management System)质量管理系统是五大基础系统之一,在工业企业中被广泛的应用,在质量策划、生产过程质量监督、体系审核和文档管理等业务上发挥着不可替代的作用。 一般制造业工厂现状:质量成本高&#x…

【MATLAB源码-第85期】基于farrow结构的滤波器仿真,截止频率等参数可调。

操作环境: MATLAB 2022a 1、算法描述 Farrow结构是一种用于实现可变数字滤波器的方法,尤其适用于数字信号处理中的采样率转换和时变滤波。它通过多项式近似来实现对滤波器系数的平滑变化,使得滤波器具有可变的群延时或其他参数。 Farrow结…

Bean依赖注入注解开发

value Value("xfy")private String userName;private String userName;Value("xiao")public void setUserName(String userName) {this.userName userName;} Autowired // 根据类型进行注入 如果同一类型的Bean有多个,尝试根基名字进行二次…