5.4 芯片SDK开发:算法工程的调试和使用|学习笔记

简介: 快速学习5.4 芯片SDK开发:算法工程的调试和使用

开发者学堂课程【平头哥剑池 CDK 功能及开发实战5.4 芯片SDK开发:算法工程的调试和使用】学习笔记与课程紧密联系,让用户快速学习知识

课程地址https://developer.aliyun.com/learning/course/61/detail/1133


5.4 芯片SDK开发:算法工程的调试和使用

 

主要内容

一、操作

二、调试

三、发布

 

上节课是关于算法工程的二次开发的一些基本要领,本节课是关于算法工程的调试和使用。

 

一、操作

有一个开发完成的算法工程,进行调试。配置算法工程的编译选项目的是保证他是O0编,即不优化得到更准确的调试精度。

image.png

择 build 或 rebuild 算法工程

image.png

将 硬件CD link 连接开发板,并连接至 SDK 中,选择divide tab连接方式为 ICE 并单击 seeing。

image.png

确定开发板已连接,且开发板型号与算法工程型号相匹配。

image.png

点击调试按钮,开始调试,算法工程已经进入算法的 main 函数。

 

二 、调试

image.png为了更好的调试算法,下面首先介绍一下算法工程如何与之前所介绍

的接口进行配合,进而实现烧写。

1.框架介绍

算法配置的核心是 do while 的循环,通过g_ func  全局变量控制每次进入循环的入口。入口即上次课程所进行的二次开发的接口。

image.png

对于 flash program ,flash read 等需要参数的端口,他们带烧写的数据所对应的都是 g_rw buffer 数据空间,需要进行操作的 flash地址是 g_dst address的全局变量。G_ length是需要操作的目标地址的宽度或者是buffer的宽度。SDK 通过控制一些全局变量,调用真正的接口,去实现真正的操作。

2.以烧写目标为例

IDE SDK 设置带烧写的目标地址:例如将全局变量的地址设置为 flash

地址0x0

image.png

(1)将镜像文件中需要烧写到目标地址的数据下载到 g_rw buffer  中。

(2)将 g_rw buffer 的长度设置为全局变量。

(3)关机键是将 g_func 设置成 program 对应的1。

(4)运行。程序会进入switch case语句中调用 flash program 逻辑,从而实现 buffer 点的数据烧写到具体的 flash 地址的目的。

程序不会一直运行,有 bkp labell 函数,它是一个汇编指令,执行了一个软断点,程序执行到此会停止。程序会始终停在这里,完成了一次flash操作。

image.png

这是CDK使用算法的控制逻辑实现烧写的目的。此控制逻辑也可以通过调试的手段模拟出来

3.调试 g_program 函数的正确性。

(1)将 g_func 值配置为1,将其拖动至窗口中修改g_func值为1

image.png

(2)修改目标地址,将 g_dst address 拖动至窗口中将其改写为0地址。

(3)验证目标地址长度,将 G_ length 拖动至窗口中,因为目的是验证长度,所以可以烧写一个较少的字节,即烧写一个 word 去验证其正确性。

(4)希望数组中的数据进行更新,需要设置g_rw buffer的值

首先查看g_rw buffer 的地址,可以看到地址在0x20000598的位置

image.png

地址中里面的内容目前是全0,将其地址前四个字节改写成需要烧写的值。

image.png

这时所有参数的设置全部完成,运行程序发现程序始终停在 bkp labell函数,无法运行到地址。

image.png

将 pc 的值直接设置在 return 寄存器中。pc的值将不指向断点指令。在 RV 的 CPU 中, ra 表示 return address,将 return address的值复制给 pc。在刷新后,程序就会在入口处。

image.png

在程序 flash program 入口处设置一个断点。做完这些后重新运行程序,程序就会按照预期运行到所做的二次开发逻辑中。程序的目标地址是设置的0,buffer地址是g_rw buffer 的地址,数据长度是之前设计的四个字节。这样之前写的逻辑就会被执行,就是将buffer中的一个字节拷贝到0x0开始的目标内存中去,可以通过内存看0x0烧写地址是否正确,0x0位置上显示我们烧写的目标地址,就说明我们的逻辑是成功的,同理可以通过更新改变 g_ func 的值来验证函数逻辑是否正确。完成了flash接口的验证。

调试完成以后,在程序配置窗口 complete  optimitation窗口中编译选项调整成o2,整个flash运行效率会提升。重新完成flash工程的编译,这样flash就可以完成发布。

 

三、发布

image.png

点击 open containing Folder

image.png

找到obj目录,找到对应的.alf文件就是flash算法文件,该文件可以用于后续学习的芯片SDK中。

image.png

目录
打赏
0
0
1
0
115
分享
相关文章
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
164 90
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
DeepSeek加持的通义灵码2.0 AI程序员实战案例:助力嵌入式开发中的算法生成革新
本文介绍了通义灵码2.0 AI程序员在嵌入式开发中的实战应用。通过安装VS Code插件并登录阿里云账号,用户可切换至DeepSeek V3模型,利用其强大的代码生成能力。实战案例中,AI程序员根据自然语言描述快速生成了C语言的base64编解码算法,包括源代码、头文件、测试代码和CMake编译脚本。即使在编译错误和需求迭代的情况下,AI程序员也能迅速分析问题并修复代码,最终成功实现功能。作者认为,通义灵码2.0显著提升了开发效率,打破了编程语言限制,是AI编程从辅助工具向工程级协同开发转变的重要标志,值得开发者广泛使用。
7851 67
DeepSeek加持的通义灵码2.0 AI程序员实战案例:助力嵌入式开发中的算法生成革新
【04】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-正确安装鸿蒙SDK-结构目录介绍-路由介绍-帧动画(ohos.animator)书写介绍-能够正常使用依赖库等-ArkUI基础组件介绍-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
【04】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-正确安装鸿蒙SDK-结构目录介绍-路由介绍-帧动画(ohos.animator)书写介绍-能够正常使用依赖库等-ArkUI基础组件介绍-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
48 5
【04】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-正确安装鸿蒙SDK-结构目录介绍-路由介绍-帧动画(ohos.animator)书写介绍-能够正常使用依赖库等-ArkUI基础组件介绍-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
【02】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-项目开发实战-准备工具安装-编译器DevEco Studio安装-arkts编程语言认识-编译器devco-鸿蒙SDK安装-模拟器环境调试-hyper虚拟化开启-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
【02】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-项目开发实战-准备工具安装-编译器DevEco Studio安装-arkts编程语言认识-编译器devco-鸿蒙SDK安装-模拟器环境调试-hyper虚拟化开启-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
34 2
【02】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-项目开发实战-准备工具安装-编译器DevEco Studio安装-arkts编程语言认识-编译器devco-鸿蒙SDK安装-模拟器环境调试-hyper虚拟化开启-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
170 20
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【01】完整开发即构美颜sdk的uni官方uts插件—让所有开发者可以直接使用即构美颜sdk的能力-优雅草卓伊凡
【01】完整开发即构美颜sdk的uni官方uts插件—让所有开发者可以直接使用即构美颜sdk的能力-优雅草卓伊凡
77 23
【01】完整开发即构美颜sdk的uni官方uts插件—让所有开发者可以直接使用即构美颜sdk的能力-优雅草卓伊凡
使用 PAI-DSW x Free Prompt Editing图像编辑算法,开发个人AIGC绘图小助理
使用 PAI-DSW x Free Prompt Editing图像编辑算法,开发个人AIGC绘图小助理
深入解析图神经网络:Graph Transformer的算法基础与工程实践
Graph Transformer是一种结合了Transformer自注意力机制与图神经网络(GNNs)特点的神经网络模型,专为处理图结构数据而设计。它通过改进的数据表示方法、自注意力机制、拉普拉斯位置编码、消息传递与聚合机制等核心技术,实现了对图中节点间关系信息的高效处理及长程依赖关系的捕捉,显著提升了图相关任务的性能。本文详细解析了Graph Transformer的技术原理、实现细节及应用场景,并通过图书推荐系统的实例,展示了其在实际问题解决中的强大能力。
325 30
婚恋交友系统平台 相亲交友平台系统 婚恋交友系统APP 婚恋系统源码 婚恋交友平台开发流程 婚恋交友系统架构设计 婚恋交友系统前端/后端开发 婚恋交友系统匹配推荐算法优化
婚恋交友系统平台通过线上互动帮助单身男女找到合适伴侣,提供用户注册、个人资料填写、匹配推荐、实时聊天、社区互动等功能。开发流程包括需求分析、技术选型、系统架构设计、功能实现、测试优化和上线运维。匹配推荐算法优化是核心,通过用户行为数据分析和机器学习提高匹配准确性。
209 3
C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出
本文探讨了C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出。文章还介绍了C语言在知名机器学习库中的作用,以及与Python等语言结合使用的案例,展望了其未来发展的挑战与机遇。
89 1

热门文章

最新文章

  • 1
    【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
    5
  • 2
    【04】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-正确安装鸿蒙SDK-结构目录介绍-路由介绍-帧动画(ohos.animator)书写介绍-能够正常使用依赖库等-ArkUI基础组件介绍-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
    18
  • 3
    CompreFace:Star6.1k,Github上火爆的轻量化且强大的人脸识别库,api,sdk都支持
    20
  • 4
    【02】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-项目开发实战-准备工具安装-编译器DevEco Studio安装-arkts编程语言认识-编译器devco-鸿蒙SDK安装-模拟器环境调试-hyper虚拟化开启-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
    7
  • 5
    【Azure Developer】编写Python SDK代码实现从China Azure中VM Disk中创建磁盘快照Snapshot
    5
  • 6
    DeepSeek加持的通义灵码2.0 AI程序员实战案例:助力嵌入式开发中的算法生成革新
    1604
  • 7
    【Azure Storage Account】利用App Service作为反向代理, 并使用.NET Storage Account SDK实现上传/下载操作
    16
  • 8
    接入DeepSeek需要做算法备案吗?一文读懂算法备案的那些事儿
    58
  • 9
    近端策略优化(PPO)算法的理论基础与PyTorch代码详解
    26
  • 10
    基于FPGA的图像双线性插值算法verilog实现,包括tb测试文件和MATLAB辅助验证
    2
  • AI助理

    你好,我是AI助理

    可以解答问题、推荐解决方案等