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(栈指针)寄存器:用于指向当前栈顶的地址,用于管理函数调用时的局部变量和函数调用栈。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

关于sklearn的:还可能是网络的问题???

前提:安装sklearn需要 numpy、scipy等库(这个自行搜索) 昨天安装numpy、scipy很快,一会就好了,然后安装sklearn一直报错,还以为是版本问题。 今天大早上起来,再次安装,顺利成功&…

GPIO模式详解:推挽/开漏/浮空/上拉/下拉/施密特(迟滞)输入

GPIO(General Purpose Input Output)可用于执行数字输入或输出功能。典型的应用包括从/向模拟或数字传感器/设备读写数值、驱动LED、为I2C通信驱动时钟、生成外部组件的触发、发出中断等。 文章目录 1 GPIO简介2 输出模式2.1 推挽输出2.2 开漏输出 3 输入模式3.1 高阻态(浮空)、…

CVE-2023-22515 Confluence未授权漏洞分析

0x01 漏洞描述 Confluence 是由 Atlassian 开发的企业级协作软件。2023年10月,Atlassian 官方披露 CVE-2023-22515 Atlassian Confluence Data Center & Server 权限提升漏洞。攻击者可构造恶意请求创建管理员,从而登录系统,造成敏感信息…

K8s实战RestartPoliy策略

一、默认策略为Always cmd.yaml apiVersion: v1 kind: Pod metadata:name: myapp-pod labels:app: myapp spec: containers:- name: myapp-container image: busyboxcommand: [sh, -c, echo OK!&& sleep 60]首先我们根据这个yaml创建一个测试的pod 执行命令 kubec…

GIT | 基础操作 | 初始化 | 添加文件 | 修改文件 | 版本回退 | 撤销修改 | 删除文件

GIT | 基础操作 | 初始化 | 添加文件 | 修改文件 | 版本回退 | 撤销修改 | 删除文件 文章目录 GIT | 基础操作 | 初始化 | 添加文件 | 修改文件 | 版本回退 | 撤销修改 | 删除文件前言一、安装git二、git基本操作2.1 初始化git2.2 配置局部生效2.3 配置全局生效 三、认识工作区…

【计算机网络笔记】路由算法之层次路由

系列文章目录 什么是计算机网络? 什么是网络协议? 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能(1)——速率、带宽、延迟 计算机网络性能(2)…

路由的控制与转发原理

场景1:路由器收到数据包后,会根据数据包的目标IP地址,计算出目标网段,再确定终端设备的具体位置。这个过程中,还需要计算出接口,或数据包下一跳的地址。最终会生成一条路由,即路径,存…

2023亚太杯数学建模B题思路分析 - 玻璃温室中的微气候法规

1 赛题 问题B 玻璃温室中的微气候法规 温室作物的产量受到各种气候因素的影响,包括温度、湿度和风速[1]。其中,适 宜的温度和风速是植物生长[2]的关键。为了调节玻璃温室内的温度、风速等气候因素 , 温室的设计通常采用带有温室风扇的通风系统&#xf…

postgreSQL如何快速查询大表数据量

文章目录 场景方案结果 场景 我有一个非常大的表,估计几百万或者几千万。 我开始使用了 select count(*) from my_table_javapub 方式,查询非常慢。 如何解决??? 方案 如果你需要更快地获取表中的行数&#xff0c…

重磅!这本30w人都在看的Python数据分析畅销书:更新了!

想学习python进行数据分析,这本《利用python进行数据分析》是绕不开的一本书。目前该书根据Python3.10已经更新到第三版。 Python 语言极具吸引力。自从 1991 年诞生以来,Python 如今已经成为最受欢迎的解释型编程语言。 pandas 诞生于2008年。它是由韦…

生成式AI与大语言模型,东软已经准备就绪

伴随着ChatGPT的火爆全球,数以百计的大语言模型也争先恐后地加入了这一战局,掀起了一场轰轰烈烈的“百模大战”。毋庸置疑的是,继方兴未艾的人工智能普及大潮之后,生成式AI与大语言模型正在全球开启新一轮生产力革新的科技浪潮。 …

『亚马逊云科技产品测评』活动征文|通过Lightsail搭建个人笔记

提示:授权声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 Developer Centre, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道 文章目录 前言实践知识储备Lightsail介绍Leanote介绍实践…

一套开源、强大且美观的WPF UI控件库 - HandyControl

前言 今天给大家推荐一套开源、强大且美观的WPF UI控件库:HandyControl。 WPF介绍 WPF 是一个强大的桌面应用程序框架,用于构建具有丰富用户界面的 Windows 应用。它提供了灵活的布局、数据绑定、样式和模板、动画效果等功能,让开发者可以创…

ASO优化之关于应用类别的选择

用户可以通过应用商店内的类别,来发现他们想要的新应用。接下来我们来一起了解如何为应用来选择最符合最准确的类别。 1、应用的类别所显示的区域? 我们可以为APP选择一个主要类别和一个次要类别,所选择的主要类别对于该应用在应用商店曝光度…

Linux 局域网传输工具LANDrop安装

Linux 局域网传输工具LANDrop安装 🥙下载🌭解压🥪运行 🥙下载 官网下载 或网盘 🌭解压 使用以下命令解压获得squashfs-root文件夹 ./LANDrop-latest-linux.AppImage --appimage-extract🥪运行 进入squ…

Selenium切换窗口、框架和弹出框window、ifame、alert

一、切换窗口 #获取打开的多个窗口句柄 windows driver.window_handles #切换到当前最新打开的窗口 driver.switch_to.window(windows[-1]) #最大化浏览器 driver.maximize_window() #刷新当前页面 driver.refresh() 二、切换框架frame 如存在以下网页&#xff1a; <htm…

Java面试-框架篇-Mybatis

Java面试-框架篇-Mybatis MyBatis执行流程延迟加载使用及原理一, 二级缓存来源 MyBatis执行流程 读取MyBatis配置文件: mybatis-config.xml加载运行环境和映射文件构造会话工厂SqlSessionFactory会话工厂创建SqlSession对象(包含了执行SQL语句的所有方法)操作数据库的接口, Ex…

C# Onnx 特征匹配 DeDoDe 检测,不描述---描述,不检测

目录 介绍 效果 模型信息 项目 代码 下载 介绍 github地址&#xff1a;https://github.com/Parskatt/DeDoDe DeDoDe &#x1f3b6; Detect, Dont Describe - Describe, Dont Detect, for Local Feature Matching The DeDoDe detector learns to detect 3D consisten…

RabbitMQ 的网页界面操作说明

启动 上面给用户添加了角色和权限&#xff0c; 我们就可以登录了 先手动创建两个队列&#xff0c;然后再把这两个队列和交换机绑定&#xff0c;就可以发布消息 回到队列中看看有什么变化 队列中显示绑定了交换机 再看一下队列中发生的变化 可以看到队列中收到了信息

【鸿蒙应用ArkTS开发系列】- 云开发入门实战一使用鸿蒙登录组件实现客户端登录

目录 概述使用云端一体化开发模板创建项目工程创建登录入口页面集成登录SDK组件依赖登录组件SDK使用登录组件SDK 开启“手机号码”和“邮箱地址”认证方式 概述 通过本次课程&#xff0c;我们将学习怎么使用云端一体化开发模板来创建云开发工程&#xff0c;以及如何使用鸿蒙登…