全志ARM926 Melis2.0系统的开发指引②

全志ARM926 Melis2.0系统的开发指引②

  • 编写目的
  • 4. 编译工具链使用
    • 4.1.工具链通用配置
    • 4.2.模块的工具链配置
    • 4.3.简单的 makefile
  • 5. 固件烧录工具的安装
    • 5.1.PhoenixSuit 的安装步骤
    • 5.2.检验 USB 驱动安装
    • 5.3.使用烧录软件 PhoenixSuit
  • -全志相关工具和资源
    • -.1 全志固件镜像修改工具 ImageModify.exe 下载
    • -.2 全志固件USB刷机工具 PhoenixSuit 下载
    • -.3 全志Melis2.0 用户手册.pdf下载
    • -.4 全志melis2.0 sdk源码库下载

编写目的

本文档是全志 Melis2.0 系统的开发指引文档,旨在协助开发者了解和掌握 Melis 系统,快速搭建 Melis系统的开发环境,将 Melis2.0 系统应用到产品开发中。
在这里插入图片描述

4. 编译工具链使用

4.1.工具链通用配置

Melis2.0 平台工具链的配置文件是“sdkroot\includes\cfgs\CROSSTOOL.CFG”。 该文件指定了
Melis2.0 平台的编译工具、硬件平台、共用库目录和相关工具的路径,SDK 中所有模块的 makefile 都会引用该配置。
该配置文件中各变量名由平台整合人员统一设置分配,用户可以使用相关的变量,但是不要对变量的
名称作修改,以免造成无法编译。相关变量的含义如下:
$(CROSSTOOL),定义交叉编译工具类型:
“ARMRVDS”,定义交叉编译工具为 RVDS;
“ARMGCC”,定义交叉编译工具为 ARMGCC;

$(EPDK_CHIP),定义硬件平台的类型,定义在脚本“sdkroot\includes\cfgs\chip.cfg”中:
$(LIBPATH),定义 Melis2.0 平台的共享库目录。
$(INTERLIBPATH),定义 Melis2.0 平台内部共享库目录。
$(WORKSPACEPATH),定义 Melis2.0 平台目标文件及打包工作路径。
$(ESTUDIOROOT),定义 Melis2.0 平台使用的 PC 工具的路径。
$(RVDSPATH),定义了 Melis2.0 平台使用的 RVDS 工具的安装路径。
$(CC),定义 C 语言编译工具:
RVDS 交叉编译工具下为“armcc”;
GCC 交叉编译工具下为“arm-elf-gcc”;

$(CFLAGS),定义 C 语言编译工具的基本配置参数。
$(AS),定义汇编器工具:
RVDS 交叉编译工具下为“armasm”;
GCC 交叉编译工具下为“arm-elf-as”;

$(ASFLAGS),定义汇编器的基本配置参数。
$(LINK),定义链接工具:
RVDS 交叉编译工具下为“armlink”;
GCC 交叉编译工具下为“arm-elf-ld”;

$(LKFLAGS),定义链接工具基本配置参数。
$(AR),定义库打包工具:
RVDS 交叉编译工具下为“armar”;
GCC 交叉编译工具下为“arm-elf-ar”;

$(ARFLAGS),定义库打包工具的基本配置参数。
$(LOAD),定义加载器工具:
RVDS 交叉编译工具下为“fromelf”;
GCC 交叉编译工具下为“arm-elf-objcopy”;

$(LDFLAGS),定义加载器工具的基本配置参数。

4.2.模块的工具链配置

CROSSTOOL.CFG 仅配置了一些公共内容,在模块的 make.cfg 使用 include 关键字来使用 CROSSTOOL.CFG
中的配置。包含了公有配置的同时,可在每个模块的 make.cfg 文件中自定义私有配置。虽然是私有配置,但一般都包括下面几个部分:
$(ROOT),定义当前模块的根目录,一般为“.”。
( S D K R O O T ) ,定义“ s d k r o o t ”目录相对于 (SDKROOT),定义“sdkroot”目录相对于 (SDKROOT),定义sdkroot目录相对于(ROOT)的相对路径,此变量必须定义,CROSSTOOL.CFG 配置
文件中会通过此变量来引用 SDK 的根目录。
include $(SDKROOT)/includes/cfgs/CROSSTOOL.CFG,引用编译工具通用配置。
$(INCLUDES),定义所有需要引用的头文件的路径。
$(LIBS),定义需要引用的库文件。
$(SRCDIRS),定义所有需要引用的源文件的路径,一般采用自动扫描的方式来定义,不需要逐项列出。
$(TARGET),定义需要输送出去的目标文件,一般不包含调试信息。
$(LOCALTARGET),定义本地生成的目标文件,一般命名为“__image.axf”,包含有完整的调试信息,用作调试。
$(LINK_SCT),定义链接程序使用的链接脚本。
除此以外,还需要对“CFLAGS”、“ASFLAGS”、“LKFLAGS”、“LDFLAGS”等相关工具配置参数做相应的扩展,以满足模块编译的特定需求。
下面是一个 make.cfg 示例:
图16:
在这里插入图片描述

4.3.简单的 makefile

Melis2.0 平台采用 makefile 的隐含规则完成对所有源文件的编译。没有启用完整的依赖规则,只有当
源码文件(.c、.s)文件发生修改后,才会重新编译该源码文件(未修改的源码文件不会被重新编译),修改头文件(.h)不会引发对源码文件的重新编译,因此,当修改了相关的头文件以后,必须先执行 clean,
再重新编译。一个基本的 makefile 一般包括以下几个部分:
include make.cfg,引用 makefile 的配置文件。
$(SRCCS),通过自动扫描获得的
.c 源文件列表。
$(SRCSS),通过自动扫描获得的*.s 源文件列表。
( O B J S ) ,通过后缀替换规则从 (OBJS),通过后缀替换规则从 (OBJS),通过后缀替换规则从(SRCCS)和 ( S R C S S ) 获得的 ∗ . o 文件列表, ∗ . o 文件通过 m a k e f i l e 的隐含规则自动编译 (SRCSS)获得的*.o 文件列表,*.o 文件通过 makefile 的隐含规则自动编译 (SRCSS)获得的.o文件列表,.o文件通过makefile的隐含规则自动编译(SRCCS)和$(SRCSS)获得。
( L O C A L T A R G E T ) : (LOCALTARGET): (LOCALTARGET):(OBJS),链接相关的*.o 和库文件得到本地目标文件。
all:$(LOCALTARGET),通过本地文件得到输出目标文件,该符号也是 makefile 的默认入口。
clean,清理生成的临时文件。
一个简单的 makefile 示例文件如下:
图17:
在这里插入图片描述

5. 固件烧录工具的安装

5.1.PhoenixSuit 的安装步骤

【step1】双击 图标,开始 PhoenixSuit 的安装。如【图 18】所示,点击安装向导“下一步”按钮,。
图18:
在这里插入图片描述

【step2】如【图 19】所示,默认安装路径,也可点击“浏览”按钮自定义安装路径,点击“下一步”按钮;
图19:

在这里插入图片描述
【step3】如【图 20】所示,点击“下一步”按钮确认安装;
图20:
在这里插入图片描述
【step4】如【图 21】所示,进入安装,进度条显示安装进度;
图21:
在这里插入图片描述
【step5】如【图 22】所示,安装过程中会弹出 USB 驱动安装提示窗口,点击“下一步”继续安装;
图22:
在这里插入图片描述
【step6】如【图 23】所示,如弹出无法验证发布者按钮,请点击“始终安装此驱动程序软件”继续安装;
图23:
在这里插入图片描述
【step7】如【图 24】所示,驱动安装完成后弹出提示窗口,点击“完成”按钮结束 USB 驱动的安装;
图24:
在这里插入图片描述
【step8】如【图 25】所示,【step7】的 USB 驱动的安装完成后,PhoenixSuit 会继续自动安装,安装完成后会出现“安装完成”提示窗口,点击“关闭”按钮结束安装。
图25:
在这里插入图片描述

5.2.检验 USB 驱动安装

PhoenixSuit 安装完成后,可打开 windows 的“设备驱动管理器”,点击“通用串行总线控制器”弹出
的设备条目,查看是否有“VID_1f3a_PID_efe8”的 USB 设备,如【图 26】所示。
图26:
在这里插入图片描述
如果开发者想要重新安装驱动,驱动在 PhoenixSuit 的安装文件夹中也有备份,参考下图【图 27】所示。
图27:
在这里插入图片描述

5.3.使用烧录软件 PhoenixSuit

【step1】双击 图标,运行 PhoenixSuit 工具,点击“一键刷机”选项卡,如【图 28】所示
图28:
在这里插入图片描述
【step2】点击【图 11】的“浏览”按钮来指定固件的存放路径,参考【图 29】,选中.img 后缀的固件文件之后,点击“打开”按钮完成固件选择。
图29:
在这里插入图片描述
【step4】选择好固件之后如【图 30】所示。接下来参考【图 31】,开发板断电的情况下,短路 Norflash 的1、2 引脚,通过 USB 线将电脑和开发板相连,再给开发板上电,上电 1~2 秒后松开 Norflash 的短路引脚即
可。如开发板本身是通过 USB 的 5V 供电,即 USB 链接电脑和开发板时就已经上电,则按照“先短路,后供电”的原则操作本步骤。
图30:
在这里插入图片描述

图31:
在这里插入图片描述
【step5】步骤 4【step4】完成之后,开发板就会跟电脑交互通信,自动进入烧录模式,PhoenixSuit 出现进度条提示烧录进度,如【图 32】所示。至此,开发者等待烧录完成即可。
图32:
在这里插入图片描述
【step6】烧录完成后,会出弹出烧录成功提示窗口,则表示烧录成功完成,开发者即可重启运行新固件。
图33:
在这里插入图片描述

-全志相关工具和资源

-.1 全志固件镜像修改工具 ImageModify.exe 下载

在这里插入图片描述
下载地址:
固件镜像修改工具 ImageModify.exe下载 ImageModify_20230906.rar

-.2 全志固件USB刷机工具 PhoenixSuit 下载

在这里插入图片描述
下载地址:
USB刷机工具 PhoenixSuit下载 PhoenixSuit_CN_V1.1.1_20230906.rar

-.3 全志Melis2.0 用户手册.pdf下载

下载地址:
全志Melis2.0 用户手册.pdf下载 documents_20230906_melis_v2.0.rar

-.4 全志melis2.0 sdk源码库下载

下载地址:
全志melis2.0 sdk源码库下载 melis2.0-sdk-release_20230906V2.0.rar

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

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

相关文章

Foxit PDF

Foxit PDF 福昕PDF 软件,可以很好的编辑PDF文档。 调整PDF页面大小 PDF文档中,一个页面大,一个页面小 面对这种情况,打开Foxit PDF 右键单击需要调整的页面,然后选择"调整页面大小". 可以选择…

Java8 Lambda.stream.sorted() 方法使用浅析分享

文章目录 Java8 Lambda.stream.sorted() 方法使用浅析分享sorted() 重载方法一升序降序 sorted() 重载方法二升序降序多字段排序 mock代码 Java8 Lambda.stream.sorted() 方法使用浅析分享 本文主要分享运用 Java8 中的 Lambda.stream.sorted方法排序的使用! sorted…

Go语言面经进阶10问

1.Golang可变参数 函数方法的参数,可以是任意多个,这种我们称之为可以变参数,比如我们常用的fmt.Println()这类函数,可以接收一个可变的参数。可以变参数,可以是任意多个。我们自己也可以定义可以变参数,可…

Day-06 基于 Docker安装 Nginx 镜像

1.去官方公有仓库查询nginx镜像 docker search nginx 2.拉取该镜像 docker pull nginx 3. 启动镜像,使用nginx服务,代理本机8080端口(测试是不是好使) docker run -d -p 8080:80 --name nginx-8080 nginx docker ps curl 127.0.0.1:8080

[CSCCTF 2019 Qual]FlaskLight 过滤 url_for globals 绕过globals过滤

目录 subprocess.Popen FILE warnings.catch_warnings site._Printer 这题很明显就是 SSTI了 源代码 我们试试看 {{7*7}} 然后我们就开始吧 原本我的想法是直接{{url_for.__globals__}} 但是回显是直接500 猜测过滤 我们正常来吧 {{"".__class__}} 查看当前…

CSS3与HTML5

box-sizing content-box:默认,宽高包不含边框和内边距 border-box:也叫怪异盒子,宽高包含边框和内边距 动画:移动translate,旋转、transform等等 走马灯:利用动画实现animation:from…

雷达编程实战之提高探测速度

有效帧频率作为雷达一个非常核心的指标,它代表了雷达探测识别的速度,速度越快,后级各项智能驾驶功能就能得到更快、更有效的判断。本篇文章首先从硬件的角度,提供了一种合理利用片上资源提高探测识别速度的常用方法,然…

SSL/TLS介绍以及wireshark抓包TLS Handshake报文

文章目录 1.概念1.1 SSL/TLS发展历史1.2 TLS两个阶段1.3 TLS报文头 2.TLS Handshake2.1 Handshake具体过程2.1.1 单向认证和双向认证2.1.2 复用TLS协商结果Session Identifier(会话标识符)Session Ticket(会话票据) 2.2 Handshake…

基于j2ee的交通管理信息系统/交通管理系统

摘 要 随着当今社会的发展,时代的进步,各行各业也在发生着变化,比如交通管理这一方面,利用网络已经逐步进入人们的生活。传统的交通管理,都是工作人员线下手工统计,这种传统方式局限性比较大且花费较多。计…

全志ARM926 Melis2.0系统的开发指引①

全志ARM926 Melis2.0系统的开发指引① 1. 编写目的2. Melis2.0 系统概述3. Melis2.0 快速开发3.1. Melis2.0 SDK 目录结构3.2. Melis2.0 编译环境3.3. Melis2.0 固件打包3.4. Melis2.0 固件烧录3.5.串口打印信息3.6. Melis2.0 添加和调用一个模块3.6.1. 为什么划分模块&#xf…

软件或游戏提示msvcp120.dll丢失的5种常用解决方法,msvcp120.dll文件全面解析

在当今数字化的时代,我们的生活已经离不开各种软件和游戏。然而,有时候我们可能会遇到一些技术问题,比如“软件或游戏提示msvcp120.dll丢失”。这个问题对于许多人来说可能很棘手,但是只要掌握了正确的解决方法,就能轻…

【现代机器人学】学习笔记十四:中文版印刷/翻译勘误

首先声明,这个印刷/勘误并非经过官方的认可,只是我个人的粗浅的理解。如果内容有误,恳请大家谅解指正。 其实有的并不算错,只是我个人认为不太准确,在我学习过程中产生了一些小疑惑和误解。 都是一些小毛病&#xff…

OpenCV 14(角点特征Harris和Shi-Tomasi)

一、角点 角点是图像很重要的特征,对图像图形的理解和分析有很重要的作用。角点在三维场景重建运动估计,目标跟踪、目标识别、图像配准与匹配等计算机视觉领域起着非常重要的作用。在现实世界中,角点对应于物体的拐角,道路的十字路口、丁字路…

华为云云耀云服务器L实例评测|Ubuntu云锁防火墙安装搭建使用

华为云云耀云服务器L实例评测|Ubuntu安装云锁防火墙对抗服务器入侵和网络攻击 1.前言概述 华为云耀云服务器L实例是新一代开箱即用、面向中小企业和开发者打造的全新轻量应用云服务器。多种产品规格,满足您对成本、性能及技术创新的诉求。云耀云服务器L…

关于字符拼接

当然,以下是加入了幽默注释的代码和对应的逻辑树: # 提示用户输入input和txt内容,期待用户真有输入 input_text input("请输入input文本:") # 好了,快点输入吧 txt_text input("请输入txt文本&#…

分类预测 | MATLAB实现WOA-FS-SVM鲸鱼算法同步优化特征选择结合支持向量机分类预测

分类预测 | MATLAB实现WOA-FS-SVM鲸鱼算法同步优化特征选择结合支持向量机分类预测 目录 分类预测 | MATLAB实现WOA-FS-SVM鲸鱼算法同步优化特征选择结合支持向量机分类预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 MATLAB实现WOA-FS-SVM鲸鱼算法同步优化特征选择结…

微信小程序button按钮去除边框去除背景色

button边框 去除button边框 在button上添加plain“true”在css中添加button.avatar-wrapper {background: none}用于去除button背景色在css中添加button.avatar-wrapper[plain]{ border:0 }用于去除button边框

机器学习——KNN算法流程详解(以iris为例)

、 目 录 前情说明 问题陈述 数据说明 KNN算法流程概述 代码实现 运行结果 基于可视化的改进 可视化代码 全部数据可视化总览 分类投票结果 改进后最终代码 前情说明 本书基于《特征工程入门与入门与实践》庄家盛 译版P53页K最近邻(KNN)算…

《C和指针》笔记33:指针数组

除了创建整型数组一样,也可以声明指针数组。 int *api[10];为了弄清这个复杂的声明,我们假定它是一个表达式,并对它进行求值。下标引用的优先级高于间接访问,所以在这个表达式中,首先执行下标引用。因此,a…

【APUE】文件系统 — 类 du 命令功能实现

一、du命令解析 Summarize disk usage of the set of FILEs, recursively for directories. du 命令用于输出文件所占用的磁盘空间 默认情况下,它会输出当前目录下(包括该目录的所有子目录下)的所有文件的大小总和,以 1024B 为单…