全志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.rhkb.cn/news/148329.html

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

相关文章

HTTP协议,请求响应

、概述 二、HTTP请求协议 三、HTTP响应协议 四、请求数据 1.简单实体参数 RequestMapping("/simpleParam")public String simpleParam(RequestParam(name "name" ,required false ) String username, Integer age){System.out.println (username "…

Boost程序库完全开发指南:1.2-C++基础知识点梳理

主要整理了N多年前&#xff08;2010年&#xff09;学习C的时候开始总结的知识点&#xff0c;好长时间不写C代码了&#xff0c;现在LLM量化和推理需要重新学习C编程&#xff0c;看来出来混迟早要还的。 1.const_cast <new_type> (expression)[1] 解析&#xff1a;const_c…

基于Vue+ELement实现增删改查案例与表单验证(附源码)

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是Java方文山&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的专栏《ELement》。&#x1f3af;&#x1f3af; &#x1…

mysql双主+双从集群连接模式

架构图&#xff1a; 详细内容参考&#xff1a; 结果展示&#xff1a; 178.119.30.14(主) 178.119.30.15(主) 178.119.30.16(从) 178.119.30.17(从)

全志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…

【学习笔记】CF1817F Entangled Substrings(基本子串结构)

前置知识&#xff1a;基本子串结构&#xff0c;SAM的结构和应用 学长博客 字符串理论比较抽象&#xff0c;建议直观的去理解它 子串 t t t的扩展串定义为 ext(t) : t ′ \text{ext(t)}:t ext(t):t′&#xff0c;满足 t t t是 t ′ t t′的子串&#xff0c;且 occ(t) occ(t…

水浒传数据集汇总

很喜欢《水浒传》&#xff0c;希望能将它融入我的考研复习中&#xff0c;打算用水浒传数据来贯穿数据结构的各种知识&#xff0c;先汇总下找到的数据集 天池上看到的一个水浒传文本数据集&#xff1a;https://tianchi.aliyun.com/dataset/36027 Hareric/masterworkNLP: 基于社…

基于 SpringBoot 2.7.x 使用最新的 Elasticsearch Java API Client 之 ElasticsearchClient

1. 从 RestHighLevelClient 到 ElasticsearchClient 从 Java Rest Client 7.15.0 版本开始&#xff0c;Elasticsearch 官方决定将 RestHighLevelClient 标记为废弃的&#xff0c;并推荐使用新的 Java API Client&#xff0c;即 ElasticsearchClient. 为什么要将 RestHighLevelC…

【C语言】内存函数的详细教学和模拟实现

&#x1f680;write in front&#x1f680; &#x1f50e;大家好&#xff0c;我是gugugu。希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流&#x1f50e; &#x1f194;本文由 gugugu 原创 CSDN首发&#x1f412; 如需转载还请通知⚠…

【再识C进阶4】详细介绍自定义类型——结构体、枚举和联合

学习目标&#xff1a; 在上一篇博客中&#xff0c;我们已经详细地学习了字符分类函数、字符转换函数和内存函数。那这一篇博客和上一篇博客的关系不是那么相连。 这一篇博客主要介绍一下自定义类型&#xff0c;因为在解决实际问题时&#xff0c;由于世界上的因素有很多&#xf…

karmada v1.7.0安装指导

前言 安装心得 经过多种方式操作&#xff0c;发现二进制方法安装太复杂&#xff0c;证书生成及其手工操作太多了&#xff0c;没有安装成功&#xff1b;helm方式的安装&#xff0c;v1.7.0的chart包执行安装会报错&#xff0c;手工修复了报错并修改了镜像地址&#xff0c;还是各…

一文拿捏Spring事务之、ACID、隔离级别、失效场景

1.&#x1f31f;Spring事务 1.编程式事务 事务管理代码嵌入嵌入到业务代码中&#xff0c;来控制事务的提交和回滚&#xff0c;例如TransactionManager 2.声明式事务 使用aop对方法前后进行拦截&#xff0c;然后在目标方法开始之前创建或者加入一个事务&#xff0c;执行完目…

一键AI高清换脸——基于InsightFace、CodeFormer实现高清换脸与验证换脸后效果能否通过人脸比对、人脸识别算法

前言 AI换脸是指利用基于深度学习和计算机视觉来替换或合成图像或视频中的人脸。可以将一个人的脸替换为另一个人的脸,或者将一个人的表情合成到另一个人的照片或视频中。算法常常被用在娱乐目上,例如在社交媒体上创建有趣的照片或视频,也有用于电影制作、特效制作、人脸编…

MySQL5.7版本与8.0版本在CentOS系统安装

目录 前置要求 1. MySQL5.7版本在CentOS系统安装 1.1 安装 1.1.1 配置yum仓库 1.1.2 使用yum安装MySQL 1.1.3 安装完成后&#xff0c;启动MySQL并配置开机自启动 1.1.4 检查MySQL的运行状态 1.2 配置 1.2.1 获取MySQL的初始密码 1.2.2 登陆MySQL数据库系统 …

《Secure Analytics-Federated Learning and Secure Aggregation》论文阅读

背景 机器学习模型对数据的分析具有很大的优势&#xff0c;很多敏感数据分布在用户各自的终端。若大规模收集用户的敏感数据具有泄露的风险。 对于安全分析的一般背景就是认为有n方有敏感数据&#xff0c;并且不愿意分享他们的数据&#xff0c;但可以分享聚合计算后的结果。 联…

Python无废话-办公自动化Excel图表制作

openpyxl 支持用Excel工作表中单元格的数据&#xff0c;创建条形图、折线图、散点图和饼图等。 图表制作步骤 在openpyxl模块中创建图表&#xff0c;步骤如下: ①选择一个单元格区域&#xff0c;创建Reference 对象&#xff0c;作为图形数据a)(Value)。 ②创建一个Chart对象…

简单查找重复文本文件

声明这是最初 我的提问给个文本分类清单input查找文件夹下 .py .txt .excel .word 一模一样的文本不是找文件名 找相同格式下的文件文本是否一样 文件单独复制到文件夹下两个文件全部复制到文件夹下 print 打印相同文本文件的名字 比如查找到了3.py与4.5.是.py文件中的文本文件…

AtCoder Beginner Contest 233 (A-Ex)

A.根据题意模拟即可 B.根据题意模拟即可 C.直接用map 进行dp即可 D.用前缀和进行模拟&#xff0c;用map统计前缀和&#xff0c;每次计算当前前缀和-k的个数就是以当前点为右端点答案。 E - Σ[k0..10^100]floor(X&#xff0f;10^k) (atcoder.jp) &#xff08;1&#xff09;…

blender光照系统设置

0&#xff09;Viewport Shading设置里面的Lighting下面的参数&#xff1a; Scene Lights,Scene World - Scene Lights是指在渲染模式下是否使用场景中的灯光对象来照亮物体。 - Scene World是指在渲染模式下是否使用场景中的世界设置来作为背景和环境光。如果关闭该选项&#…

分类预测 | MATLAB实现NGO-CNN北方苍鹰算法优化卷积神经网络数据分类预测

分类预测 | MATLAB实现NGO-CNN北方苍鹰算法优化卷积神经网络数据分类预测 目录 分类预测 | MATLAB实现NGO-CNN北方苍鹰算法优化卷积神经网络数据分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现NGO-CNN北方苍鹰算法优化卷积神经网络数据分类预测&…