百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

全志A40i开发板——Ubuntu系统使用说明

bigegpt 2025-03-29 15:23 10 浏览


前 言 3

1 Ubuntu根文件系统替换 4

1.1 替换到Linux系统启动卡 4

1.2 替换到eMMC 5

2 Ubuntu系统测试 6

2.1 LED测试 7

2.2 按键测试 7

更多帮助 10

前 言

本指导文档主要演示Ubuntu根文件系统镜像的替换和测试方法。

请先按照调试工具安装、Linux开发环境搭建相关文档,安装SecureCRT串口调试终端、VMware虚拟机等相关软件,按照Linux系统使用手册解压安装LinuxSDK开发包到Ubuntu。无特殊说明情况下,默认使用USB TO UART0作为调试串口,使用Linux系统启动卡(Micro SD方式)启动系统,通过路由器与PC机进行网络连接。

测试板卡为:创龙科技的A40i开发板。其接口资源丰富,可引出双路网口、双路CAN、双路USB、双路RS485等通信接口,板载Bluetooth、WIFI、4G(选配)模块,同时引出MIPI LCD、LVDS LCD、TFT LCD、HDMI OUT、CVBS OUT、CAMERA、LINE IN、H/P OUT等音视频多媒体接口,支持双屏异显、1080P@45fps H.264视频硬件编码、1080P@60fps H.264视频硬件解码,并支持SATA大容量存储接口。

A40i核心板采用100%国产元器件方案,并经过专业的PCB Layout和高低温测试验证,稳定可靠,可满足各种工业应用环境,应用于能源电力、轨道交通、工业控制、工业网关、仪器仪表、安防监控等典型领域。


适用开发环境:

Windows开发环境:Windows 7 64bit、Windows 10 64bit

Linux开发环境:Ubuntu18.04.4 64bit

虚拟机:VMware15.1.0

U-Boot:U-Boot-2014.07

Kernel:Linux-3.10.65

Ubuntu:Ubuntu16.04根文件系统(约1.5GByte)

LinuxSDK:LinuxSDK_AA_BB_CC_DD(基于T3_LinuxSDK_V1.3_20190122)

我司提供的
LinuxSDK_AA_BB_CC_DD.tar.gz开发包已自带全志科技官方Ubuntu16.04根文件系统镜像,位于LinuxSDK开发包"
buildroot-201611/target/ubuntu_16.04/"目录下(如下图),如需替换使用Ubuntu根文件系统,请参考如下章节进行操作。


图 1

Ubuntu根文件系统替换

替换到Linux系统启动卡

将Linux系统启动卡通过Micro SD读卡器插至PC机USB接口,并挂载至Ubuntu系统。执行如下命令,确认Linux系统启动卡在Ubuntu系统的设备节点名,可以看到Linux系统启动卡设备节点是"/dev/sdb",并且有七个分区,其中"/dev/sdb7"为文件系统所在分区。

备注:设备节点名字是可变的,一般插拔多次或者使用不同的卡插拔后,可能会显示sdc或者sdd。

Host# sudo fdisk -l

在LinuxSDK的lichee源码安装目录下,执行如下命令进入Ubuntu根文件系统镜像所在目录,将其固化至Linux系统启动卡文件系统分区。

Host# cdbuildroot-201611/target/ubuntu_16.04/

Host# sudo dd if=ubuntu of=/dev/sdb7 bs=1024 && sync


图 4

固化过程预计耗时约5min,请耐心等待,打印"records in、records out"信息表示固化完成。

替换到eMMC

将U盘插至PC机USB接口,并挂载至Ubuntu系统。在LinuxSDK开发包Ubuntu根文件系统镜像所在目录,将其拷贝至U盘。


图 5

拷贝完成后,将U盘插入评估板USB1 HOST或USB2 HOST接口,从Linux系统启动卡启动系统,执行如下命令查看U盘在文件系统的设备节点名。

Target# df -h


点击添加图片描述(最多60个字)编辑

图 6

执行如下命令将U盘的Ubuntu根文件系统镜像固化至eMMC的文件系统分区(mmcblk0p7)。预计耗时4min左右,串口终端打印"records in、records out"信息表示固化完成。

Target# time dd if=/mnt/usb/sda/ubuntu of=/dev/mmcblk0p7 bs=1024 && sync


图 7

Ubuntu系统测试

将Linux系统启动卡插入评估板Micro SD卡槽,根据评估底板丝印将拨码开关拨为0,此档位将优先从Linux系统启动卡中启动系统。将评估板上电启动,系统启动后输入用户账户:root,密码:123,登录系统成功后,串口终端将打印如下信息。


图 8

由全志官方提供的Ubuntu系统除CVBS OUT、TVIN、CAMERA0、CAMETA1少数接口外,支持大部分外设接口。Ubuntu系统暂不支持GUI操作界面,暂不支持通过apt-get命令在线安装工具,因此部分外设接口测试需要自行拷贝安装对应的工具。

以下章节以LED、按键为例,演示Ubuntu系统的测试方法,其余外设接口测试请参考评估板测试手册。

LED测试

评估底板LED1、LED2与GPIO引脚对应关系如下表所示,系统启动后默认点亮。

表 1

编辑 进入评估板文件系统,执行如下命令逐盏熄灭、点亮LED。

Target# echo 0 >
/sys/class/leds/user-led0/brightness //控制LED1灭

Target# echo 1 >
/sys/class/leds/user-led0/brightness //控制LED1亮

Target# echo 0 >
/sys/class/leds/user-led1/brightness //控制LED2灭

Target# echo 1 >
/sys/class/leds/user-led1/brightness //控制LED2亮


图 9

按键测试

评估底板包含3个用户按键:KEY3、KEY4、KEY5。进入评估板文件系统,执行如下命令查看用户按键对应的事件号。

Target# cat /proc/bus/input/devices

从上图中可看到KEY3和KEY4对应的按键事件号为event1,KEY5对应的按键事件号为event5。

执行如下命令,分别按下KEY3和KEY4进行按键测试,可看到如下打印信息,其中"0094"表示KEY3,"0095"表示KEY4,按"Ctrl + C"可终止测试命令。

Target# od -x /dev/input/event1


图 11

执行如下命令,按下KEY5进行按键测试,可看到如下打印信息,"00ca"表示KEY5,按"Ctrl + C"可终止测试命令。

Target# od -x /dev/input/event5


图 12

相关推荐

最全的MySQL总结,助你向阿里“开炮”(面试题+笔记+思维图)

前言作为一名编程人员,对MySQL一定不会陌生,尤其是互联网行业,对MySQL的使用是比较多的。对于求职者来说,MySQL又是面试中一定会问到的重点,很多人拥有大厂梦,却因为MySQL败下阵来。实际上...

Redis数据库从入门到精通(redis数据库设计)

目录一、常见的非关系型数据库NOSQL分类二、了解Redis三、Redis的单节点安装教程四、Redis的常用命令1、Help帮助命令2、SET命令3、过期命令4、查找键命令5、操作键命令6、GET命...

netcore 急速接入第三方登录,不看后悔

新年新气象,趁着新年的喜庆,肝了十来天,终于发了第一版,希望大家喜欢。如果有不喜欢看文字的童鞋,可以直接看下面的地址体验一下:https://oauthlogin.net/前言此次带来得这个小项目是...

精选 30 个 C++ 面试题(含解析)(c++面试题和答案汇总)

大家好,我是柠檬哥,专注编程知识分享。欢迎关注@程序员柠檬橙,编程路上不迷路,私信发送以下关键字获取编程资源:发送1024打包下载10个G编程资源学习资料发送001获取阿里大神LeetCode...

Oracle 12c系列(一)|多租户容器数据库

作者杨禹航出品沃趣技术Oracle12.1发布至今已有多年,但国内Oracle12C的用户并不多,随着12.2在去年的发布,选择安装Oracle12c的客户量明显增加,在接下来的几年中,Or...

flutter系列之:UI layout简介(flutter-ui-nice)

简介对于一个前端框架来说,除了各个组件之外,最重要的就是将这些组件进行连接的布局了。布局的英文名叫做layout,就是用来描述如何将组件进行摆放的一个约束。在flutter中,基本上所有的对象都是wi...

Flutter 分页功能表格控件(flutter 列表)

老孟导读:前2天有读者问到是否有带分页功能的表格控件,今天分页功能的表格控件详细解析来来。PaginatedDataTablePaginatedDataTable是一个带分页功能的DataTable,...

Flutter | 使用BottomNavigationBar快速构建底部导航

平时我们在使用app时经常会看到底部导航栏,而在flutter中它的实现也较为简单.需要用到的组件:BottomNavigationBar导航栏的主体BottomNavigationBarI...

Android中的数据库和本地存储在Flutter中是怎样实现的

如何使用SharedPreferences?在Android中,你可以使用SharedPreferencesAPI来存储少量的键值对。在Flutter中,使用Shared_Pref...

Flet,一个Flutter应用的实用Python库!

▼Flet:用Python轻松构建跨平台应用!在纷繁复杂的Python框架中,Flet宛如一缕清风,为开发者带来极致的跨平台应用开发体验。它用最简单的Python代码,帮你实现移动端、桌面端...

flutter系列之:做一个图像滤镜(flutter photo)

简介很多时候,我们需要一些特效功能,比如给图片做个滤镜什么的,如果是h5页面,那么我们可以很容易的通过css滤镜来实现这个功能。那么如果在flutter中,如果要实现这样的滤镜功能应该怎么处理呢?一起...

flutter软件开发笔记20-flutter web开发

flutterweb开发优势比较多,采用统一的语言,就能开发不同类型的软件,在web开发中,特别是后台式软件中,相比传统的html5开发,更高效,有点像c++编程的方式,把web设计出来了。一...

Flutter实战-请求封装(五)之设置抓包Proxy

用了两年的flutter,有了一些心得,不虚头巴脑,只求实战有用,以供学习或使用flutter的小伙伴参考,学习尚浅,如有不正确的地方还望各路大神指正,以免误人子弟,在此拜谢~(原创不易,转发请标注来...

为什么不在 Flutter 中使用全局变量来管理状态

我相信没有人用全局变量来管理Flutter应用程序的状态。毫无疑问,我们的Flutter应用程序需要状态管理包或Flutter的基本小部件(例如InheritedWidget或St...

Flutter 攻略(Dart基本数据类型,变量 整理 2)

代码运行从main方法开始voidmain(){print("hellodart");}变量与常量var声明变量未初始化变量为nullvarc;//未初始化print(c)...