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


    编写目的

    本文档是全志 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

  • 相关阅读:
    Jmeter结构体系——Jmeter简介及安装
    Java基础:Java抽象接口
    【CSS基础】
    XML有哪些概念?
    关于css中设置变量用于全局Css或者Js中使用
    【微服务~Nacos】Nacos服务提供者和服务消费者
    Linux 安装ssh和配置ssh
    员工上班总是摸鱼该怎么管?(有效防止员工上班摸鱼的方法)
    redis常用命令
    2.6 自定义srv python
  • 原文地址:https://blog.csdn.net/kingpower2018/article/details/133519161