剑池系列开发工具系统规划(二)| 学习笔记

简介: 快速学习剑池系列开发工具系统规划。

开发者学堂课程【剑池系列开发工具 :剑池系列开发工具系统规划(二)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/734/detail/13095


剑池系列开发工具系统规划(二)

 

三、开发工具集合

1.编译工具链

对于编译工具链主要介绍的是 GCC Based。可以认为官网已经集成了原来玄铁800系列的整套工具。其次是函数库,也就是 C 库或基础的库。根据当前应用情况,因为每个客户都有不同的应用场景,对于不同需求,都一并支持。针对玄铁处理器实现了 Minilibc 的版本,专门面向 MCU 领域,有运行库,会把软件浮点、除法指令、利用思维的乘法除法取模自动处理,同时加入到 CPU 运行时库中,达到对整个产品形成很好的 codecast 的竞争力。同时在语言类的开源官网上的 GCC 版本中做了许多优化,针对整个流水线结构、微架构的特征做了通用型的优化。以下是增强性能的效果:

image.png

相对标准指令由平均20%的提升。以上是整个编译工具链。

2.调试系统

(1)基于 GDB 支持标准调试命令

(2)多种调试方式

裸程序在线调试. Linux 应用调试

软件模拟调试

(3)功能多样性

常用调试命令

硬断点或 Watch 点

RTOS 多线程调试

只读存储空间在线调试

(4)在线仿真器 ICE

CKLink-Lite, CKLink-Pro

最高达1.1M Bytes/s下载速度

支持半主机模式,支持 Debug Print

调试系统采用的是 GDB based,调试中心与市面上的事物非常通用。在原来 GDB 中使用习惯的方式或标准的调试命令在此处都支持。除此之外,支持类似于硬件的断点。支持 RTOS 多线程调试,在 RTOS 时,调试器会自动从整个芯片中抓取每个线程的信息。同时以 CR 的形式或 EY 的形式展示在页面中,方便调试。支持 Flash、 ROM 只读空间的在线调试。从调试方式上看,可以分为3种调试方式:

(1)裸程序调试,也就是调试的是开发版,里面没有 OS 或只有裸跑程序,可以通过在线仿真器进行调试;

(2)支持 Linux 应用调试。可以通过 GDB server 的方式直接连接,现在已经支持 native 的方式,相当于 GDB 可以直接运行在开发板上。例如 X86 调试应用程序一样调试整个例子的应用程序。

(3)软件模拟调试例如,在没有任何开发板或。运行环境的情况下,仍然可以启动软件模拟器,让它模拟整套硬件,再基于整个模拟器进行调试。在把程序全部调试完毕之后,可以将一模一样的程序移到真实的开发板上直接运行。

在线仿真器 ICE 分为2个版本:

(1)CK Link Lite

(2)CK Link Pro

CK Link Lite 面向 MCU 领域,因为制造成本较低,是通过 MCU 的方式模拟节态的持续,达到调试效果,是为了方便芯片厂家或客户或应用方案厂家,在推广自己的开发板时,可以直接将 Lite 集成到开发板中,达到使用方便,成本低的目的。对于 CK Link Pro 的开发,在调试大型应用程序时会出现下载应用程序有很多兆的情况, 此时 CK Link Lite 只有几百 K 的传输速率,会花很长时间。CK Link Pro 能够达到1.1兆Byte 每秒的下载速度。还支持半主机模式调试打印,半主机模式就是在调试过程中,因为 MCU 领域没有文件系统。希望将文件信息打印输出主机的文件系统中,或者从主机直接读取文件到 MCU 系统中,此时就可以直接使用半主机模式。调试机器会自动通过调试通道将两个事物嫁接好,就可以访问自己本机操作系统文件。此外,还支持调试打印。调试打印是在没有串口的情况下,还可以支持通过调试通道将信息输出。相当于不需要其他输出方式,直接通过调试口输出想要的信息到电脑屏幕中,以下就是整个调试系统:

image.png

3.模拟器

image.png

image.png

模拟器目前使用 Chrome based,有两个使用模式:系统模式和 Link 用户模式。系统模式就是模拟器模拟了一个 soc芯片,或直接模拟了一块芯片,或直接模拟了一个板子。当运行的时候,就会像直接运行开发板一样。用户模式指的是不只模拟一个板子,还模拟了 Linux 用户环境。可以直接用 Linux 用户程序通过模拟器执行,不需要先把整个文件系统运行起来才能够运行应用程序。可以直接在模拟器中运行相应程序。在用户模式下,模拟速度较高。在3.4赫兹的情况下,用户模式可以达到500兆的硬件速度。系统模式能够达到300兆或400兆的硬件速度。除此之外,通过该系统能够直接在没有硬件的情况下调试开发板,使用 CPU。在 IDEe 中,支持自定义配置自己的 soc,如图所示是集成开发环境的配置界面:

image.png

image.png

用户能够通过该途径搭建出自己的芯片。可以根据公司内目标芯片通过拼凑搭建出自己的芯片。在该芯片上做同步开发,就能够更快速的无缝式迁移到未来的芯片中。相当于用扑天化的方式将模拟器配置做成动态化。

3.可二次开发的 Flash 烧写器

(1)烧写算法二次开发

二次开发的Flash驱动实现和新建

烧写驱动模板的复制、导入和导出

(2)特性

调试时一键烧写

支持 iHex、ELF、Raw Binary 文件

多样化的烧写时擦除方式

烧写前的开发板附加操作,如 Preload 等

image.png

image.png 

提供了可二次开发的 Flash 烧写器,由于最后要生产出产品,就需要将程序烧写到 Flash 中。在开发原型的过程中,如果要额外制作 Flash 烧写器,就会很麻烦,需要浪费许多时间和成本。阿里云提供了可二次开发的 Flash 烧写器,能够提供市面上能够提供市面上常见的擦除烧写的功能。程序如何烧录等问题,能够通过二次开发接口或通过 IDE 中的 Flash 算法帮助用户直接生成 Flash 算法,只需要在阿里云的 Flash 上指定算法,就可以使用。能够节约开发成本和开发时间。

4.极简开发的集成开发环境 

image.png

有两个集成开发环境:cdk、cds,面向 MCU、ROT 应用开发的专业 IDE,市面上的 IDE 在功能上有许多相似。从统计上看,市面上许多产品都是使用 MCU 开发的,使用 IDEe 开发的产品很少。从这类用户人群中,将这些工具打造好。包括用户使用习惯编程,程序作为可视化编辑。希望让51开发单片机或 CPU IDEE 用户群体能够顺滑地迁移到开发工具上。

5. CDK 极简开发理念

将 CDK 打造为有着极简开发为目的的工具。在许多使用过程中,一旦软件入口多了之后,就会考虑 CPU 功能是是否配置错误,导致工程运行失败,会花较多时间在调试问题上。用户开发者更多的是关心业务代码的开发,不用担心新品的配置。通过一些手段将东西 UI 化,将其模板化之后,达到了可以让很多繁杂的配置在前期阶段完成。

6.CDK-工程组件化开发方式

image.png

建议用户将每个应用中的每个模块组件化。例如驱动组件、CPU 组件和协议相关的组件。这些组件在各个应用之间可以互用互通,通过云端组件化管理的平台,将组件放在其中管理起来,用户可以直接通过通用的组件代码将组件插到自己的工程中,形成芯片的应用生态。芯片厂家推销芯片时也较为方便,只需要提到驱动有更新,直接推到 OC 平台中,OC 平台的用户或开发者就能够立即接收到推送信息,将自己的组件更新。

7.CDK-图形化管脚选择&外设配置

image.png

在 CDK 中加入了在 MCU 中使用较为频繁的图形化管脚选择和配置。如图所示。管脚示意图不是静态图片,芯片厂家通过描述文件能够制作出相应的芯片,描述文件中有对芯片相应的描述,例如芯片形状、管脚排布、管脚取名等。芯片厂家会通过配置文件自动生成整个芯片的样子。以上是第一步,第二步可以双击每个管脚,能够弹出一个对话框,弹出对话框之后,能够直接选择每个管脚功能。选择完毕之后。,CDK 会自动生成芯片管脚的功能选择的配置代码。如右图所示,包括波特率配置、gpl 配置和 ad 采样配置。以上内容如果要通过公司计算产生。会极其不方便,能够直接通过 UI 的方式将配置问题全部解决。如果希望改变配置信息,可以通过 UI 的方式直接更改,也会自动将代码更改。

8.旗舰版集成开发环境 CDS

image.png

image.png

基于 Eclipse 5,并持续跟踪

友好的 SOC 厂商工程模板管理

图形化芯片模拟器编辑器

Flash 只读存储调试

可二次开发的  Flash 编程器

SOC 1/O 寄存器调试视图

图形化 OS Tracer、Profiling 功能

面向更高性能处理器的开发。将所有开发工具放到 CDs 中。在其中会涵盖许多黑科技。例如会将 profiling 或其他用起来耗资源或性能分期效果较好的工具放到 CDs 中。如何选择 CDS 和 CDK?对于 MCU 用户,更加适合用 CDK,因为原来的使用习惯适合用 CDK,对于整个应用开发群体或工程师迁移起来会较为平缓,应用习惯会较为相似。如果用户群体之前使用的是 Eclipse,那么使用 CDs 的时候就会较为顺手。所以对于2个工具的选择,是基于用户习惯的。更希望将 CDK 打造为简洁的功能。 CDs 是 Eclipse based,包括工程管理、编辑窗口、Profile、界面风格都类似于Eclipse。比较有特色的功能就是图形化的 profiling,如图所示:

image.png

在去年发布了整个 Risk five 业内第一个支持图形化 profiling 的 IDE。支持基于模拟器的 Profiling,目前支持5个功能:第一能够实时查看芯片运行情况、函数与运行占比等。其次,能够生成运行报告,也就是 overview。在运行完成之后会生成性能测试报告,在报告中找到想要的总体信息。第三 Timeline,Timeline 记录所有时间轨迹上的任何一个点发生的事情,只需要通过鼠标选择时间片段,即可查看运行指令或源码等。第四是 function 视图, Function视图在开发过程中较为常用,因为在做应用程序开发时,最关心的是性能分析、找程序热点。 在程序当中通过function 的方式运行完之后,会按照运行时所占的时间排序出来。告诉用户该函数在整个运行当中占比时间是多少,会显示出全部占比。用户能够通过该视图提高性能,对占比较高的函数进行优化。第五点是 call path,会将整个动态运行过程中程序调用的关系图统计出,。能够在该点上看到函数调用关系是否错误?是否符合预期?运行路线是什么?

9.演示

以上是 profiling 视图运行情况。也就是运行状态在运行过程中能够看到 Memory 访问次数,还可以得出中断次数,会对消耗次数进行统计:

image.png

以下是 overview 视图:

image.png

能够从图中得出应用占比较高的函数,还会显示 local store 的占比。

相关文章
|
8月前
|
前端开发 JavaScript Android开发
打算一个卡片记忆软件,全平台架构如何选型?
打算一个卡片记忆软件,全平台架构如何选型?
|
存储 前端开发 JavaScript
潮玩宇宙大逃杀无聊猿卷轴模式系统开发详细规则丨步骤需求丨方案项目丨技术架构丨源码功能
确定游戏类型和规则:明确无聊猿卷轴模式游戏类型和游戏规则,包括敌人类型、地图设计、任务类型、战斗机制等。
|
4月前
|
C# Android开发 开发者
Uno Platform 高级定制秘籍:深度解析与实践样式和模板应用,助你打造统一且高效的跨平台UI设计
【9月更文挑战第7天】Uno Platform 是一个强大的框架,支持使用 C# 和 XAML 创建跨平台 UI 应用,覆盖 Windows、iOS、Android、macOS 和 WebAssembly。本文介绍 Uno Platform 中样式和模板的应用,助力开发者提升界面一致性与开发效率。样式定义控件外观,如颜色和字体;模板则详细定制控件布局。通过 XAML 定义样式和模板,并可在资源字典中全局应用或嵌套扩展。合理利用样式和模板能简化代码、保持设计一致性和提高维护性,帮助开发者构建美观高效的跨平台应用。
78 1
|
5月前
|
开发者 图形学 iOS开发
掌握Unity的跨平台部署与发布秘籍,让你的游戏作品在多个平台上大放异彩——从基础设置到高级优化,深入解析一站式游戏开发解决方案的每一个细节,带你领略高效发布流程的魅力所在
【8月更文挑战第31天】跨平台游戏开发是当今游戏产业的热点,尤其在移动设备普及的背景下更为重要。作为领先的游戏开发引擎,Unity以其卓越的跨平台支持能力脱颖而出,能够将游戏轻松部署至iOS、Android、PC、Mac、Web及游戏主机等多个平台。本文通过杂文形式探讨Unity在各平台的部署与发布策略,并提供具体实例,涵盖项目设置、性能优化、打包流程及发布前准备等关键环节,助力开发者充分利用Unity的强大功能,实现多平台游戏开发。
145 0
|
5月前
|
前端开发 开发者 C#
深度解析 Uno Platform 中的 MVVM 模式:从理论到实践的全方位指南,助你轻松掌握通过 C# 与 XAML 构建高效可维护的跨平台应用秘籍
【8月更文挑战第31天】本文详细介绍如何在优秀的跨平台 UI 框架 Uno Platform 中实施 MVVM(Model-View-ViewModel)模式,通过一个简单的待办事项列表应用演示其实现过程。MVVM 模式有助于分离视图层与业务逻辑层,提升代码组织性、易测性和可维护性。Uno Platform 的数据绑定机制使视图与模型间的同步变得高效简便。文章通过构造 `TodoListViewModel` 类及其相关视图,展示了如何解耦视图与模型,实现动态数据绑定及命令处理,从而提高代码质量和开发效率。通过这一模式,开发者能更轻松地构建复杂的跨平台应用。
65 0
|
8月前
|
Oracle Java 关系型数据库
搭建Java开发天堂:构建理想的开发环境
搭建Java开发天堂:构建理想的开发环境
101 1
搭建Java开发天堂:构建理想的开发环境
|
8月前
|
JSON 开发者 数据格式
揭秘5.3k⭐开发者的秘密武器:it-tools在线工具集,你不可不知!
揭秘5.3k⭐开发者的秘密武器:it-tools在线工具集,你不可不知!
69 0
|
8月前
|
人工智能 IDE API
灵动指尖 :阿里云智能编码插件 更好的为IDE内置社区服务
灵动指尖 :阿里云智能编码插件 更好的为IDE内置社区服务
968 0
|
8月前
|
运维 Java 开发工具
Java后端学习路线6大维度详细总结(编程基础+开发工具+应用框架+运维知识+成神之路+平稳降落)【可作为知识点梳理列表】【点击可查看高清原图】
Java后端学习路线6大维度详细总结(编程基础+开发工具+应用框架+运维知识+成神之路+平稳降落)【可作为知识点梳理列表】【点击可查看高清原图】
109 0
|
SQL IDE Linux
IDEA:7个强大功能助你高效编码和优质工作!
IDEA:7个强大功能助你高效编码和优质工作!
74 0