5.3 芯片SDK开发:算法工程的二次开发|学习笔记

简介: 快速学习5.3 芯片SDK开发:算法工程的二次开发

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

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


5.3 芯片SDK开发:算法工程的二次开发

 

上节课讲解 cdk 中的算法文件的工作原理及如何在 cdk 中创建一个算法文件,本次课程讲解算法工程的开发步骤。

image.png

上节课提到了算法工程分为这四个步骤,在做算法步骤需要进行二次开发的是这三个部分,第一 flash 设备描述,需要按照 flash 实际的参数去填写 flash 的描述信息。第二是 flash 接口的实现,我们根据具体的 flash 硬件设备特性去完成 flash 标准接口的逻辑。第三关于 buffer 数据交互的调整,根据芯片的大小来设置 buffer 的大小。因为 buffer 讲到是 pc 端的带商品镜像跟算法交互的数据传输的 buffer 的区域,这个区域理论上设置的越大其交互树状会议越少,使得整个 flash 烧写的速度就会变快。涉及到小方面是 flash 烧写速度会明显降低,会议需要根据目标端的具体的大小尽可能的设置较大的 buffer 最后一步是根据工作原理调试系统。演示 cdk 中做的二次开发需要的内容:

image.png

创建完成一个 flash 计算工程以后,它包含 arch、inc、script、src 目录,真正需要二次开发的是 src 目录下的三个文件,首先观察 flashDev.c 就是 flash的描述工程,这里我们只需要按照注释的要求逐个去填写即可,第一项是保留不进行修改,第二项是填写 flash 的名称即应聘设备上的应聘名称,填写所用 cpu 的型号,第三项是 flash 的 id ,此 id 是作为 flash 标识,起显示作用。第四项是 flash的类型,根据 flash 的类型去填写字符串。下面区域不进行修改。可以直接访问的方式是为了表示 flash 空间是否可以直接读取,如果这里配置的是1,那么后续配置进行读 flash 的操作的时候,就不会调用需要二次接发开口的 flashread 接口;反之,若此处配置调用0,那么后续配置调用 flashread 接口读取 flash 的内容,最后是 flash 空间的配比,支持多个 flash 区域的配置。每个 flash 配置都是由起始地址以及每一个 second、size 组成,根据硬件的实际指标保持默认配比即可。

image.png

第二部分是在慢函数点 c 的 j_rwbuffer 数据的大小,默认是4k 的大小,根据自身亲切的 RAM 空间配置,尽可能配置相适应的 buffer 大小。需要改进的非文件,其中每一个标有 to do 的位置是需要做接口开发的全部内容包含上节课讲到的 inituninitprogramkeypuistakesome 的一个接口根据我们的硬件行为完成具体的逻辑。硬件如果进行 flash 操作之前需要进行硬件相关的配置这里的 demo 不需要进行配置。uninit 是所有 flash 配置之后所有的 flash 硬件的一些初始化。flashid 需要返回之前的 scvc 描述的 idprogram将我们必要烧写到数据烧写到 flash 区间当中,第一个参数 dst flash 需要编程的地址,第二个是原地址,第三个是需要双写数据的长度。会把这个内存上面的 longs 常数去双写到 dest 所在的位置,因为在实际的演示当中是用一个 reck 模拟 flash,所以需要双写的数据直接复制到目标地址即可。简单的数据转移过程,此时完成数据 program 接口。Read 接口如果说是第一位参数 diredly 选择的是1,其不会调用,不做任何操作。Erase second 操作,该地址是 second 对齐首地址,long 是需要开出的地址,erase 是需要整片擦除的地址。

image.png

此处是模拟的需要擦除的内容,将需要擦除的内容直接写下来即可,再去模拟整个 flash 擦除的操作。因为前面描述的 flashsize next 8000size ,这里以 next 8000为数据长度,把i作为地址,进行地址上的操作,将8000区域所有数据值改1.takesomeflash 是读取情况下直接复制到业务逻辑即可。可以将 flashface 的开发工作完成。由图可知是 flash 模拟的擦除内容进行简单开发,实际开发要比演示更加复杂。为了后续开发手段,在 flash 驱动过程中加入一些 src 的驱动,建议大家将每个接口的数据进行打印,为后续做 flash 烧写调序进行铺垫。

本次课程就到这里,下节课为大家讲解如何调试并验证 flash 能否正常工作。

相关文章
|
11天前
|
开发工具 Android开发
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
159 11
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
|
14天前
|
算法 安全 数据可视化
基于多目标鲸鱼优化算法(NSWOA)求解地铁隧道竖向位移和成本的双目标求解(以铁道科学报与工程文章为例)研究(Matlab代码实现)
基于多目标鲸鱼优化算法(NSWOA)求解地铁隧道竖向位移和成本的双目标求解(以铁道科学报与工程文章为例)研究(Matlab代码实现)
|
8月前
|
人工智能 编解码 算法
DeepSeek加持的通义灵码2.0 AI程序员实战案例:助力嵌入式开发中的算法生成革新
本文介绍了通义灵码2.0 AI程序员在嵌入式开发中的实战应用。通过安装VS Code插件并登录阿里云账号,用户可切换至DeepSeek V3模型,利用其强大的代码生成能力。实战案例中,AI程序员根据自然语言描述快速生成了C语言的base64编解码算法,包括源代码、头文件、测试代码和CMake编译脚本。即使在编译错误和需求迭代的情况下,AI程序员也能迅速分析问题并修复代码,最终成功实现功能。作者认为,通义灵码2.0显著提升了开发效率,打破了编程语言限制,是AI编程从辅助工具向工程级协同开发转变的重要标志,值得开发者广泛使用。
8521 71
DeepSeek加持的通义灵码2.0 AI程序员实战案例:助力嵌入式开发中的算法生成革新
|
8月前
|
前端开发 安全 开发工具
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
395 90
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
5月前
|
监控 算法 数据处理
基于 C++ 的 KD 树算法在监控局域网屏幕中的理论剖析与工程实践研究
本文探讨了KD树在局域网屏幕监控中的应用,通过C++实现其构建与查询功能,显著提升多维数据处理效率。KD树作为一种二叉空间划分结构,适用于屏幕图像特征匹配、异常画面检测及数据压缩传输优化等场景。相比传统方法,基于KD树的方案检索效率提升2-3个数量级,但高维数据退化和动态更新等问题仍需进一步研究。未来可通过融合其他数据结构、引入深度学习及开发增量式更新算法等方式优化性能。
145 17
|
5月前
|
人工智能 自然语言处理 开发工具
HarmonyOS NEXT~鸿蒙开发能力:HarmonyOS SDK AI 全解析
本文深入解析HarmonyOS SDK中的AI功能集,涵盖分布式AI引擎、核心组件(NLP、计算机视觉等)及智能决策能力。通过代码示例与开发实践指南,帮助开发者掌握环境配置、性能调优及多场景应用(智能家居、移动办公等)。同时探讨性能优化策略与未来演进方向,助力构建高效分布式智能应用。
306 9
|
6月前
|
Ubuntu 编译器 开发工具
基于Ubuntu Server的YTM32 SDK工程编译
希望这个“烹饪”比喻能帮助你理解SDK工程编译的过程。记住,编程就像烹饪一样,需要耐心,实践,和不断的学习。祝你烹饪愉快!
101 21
|
4月前
|
存储 机器学习/深度学习 监控
公司电脑上网监控中滑动窗口算法的理论构建与工程实现
本文提出一种基于滑动窗口算法的实时网络流量监控框架,旨在强化企业信息安全防护体系。系统采用分层架构设计,包含数据采集、处理与分析决策三大模块,通过 Java 实现核心功能。利用滑动窗口技术动态分析流量模式,结合阈值检测与机器学习模型识别异常行为。实验表明,该方案在保证高检测准确率的同时支持大规模并发处理,为企业数字化转型提供可靠保障。
92 0
|
7月前
|
存储 开发工具 开发者
揭秘 Microsoft.Docker.SDK:让容器开发更轻松的强大工具揭秘
随着云计算和容器技术的快速发展,`Docker` 已经成为容器化技术的事实标准。`Microsoft` 作为 `Docker` 的主要支持者和参与者,推出了 `Microsoft.Docker.SDK`,旨在帮助开发者更轻松地进行容器开发。本文将深入揭秘 Microsoft.Docker.SDK 的功能、使用方法以及它在容器开发中的应用。
184 13
|
8月前
|
前端开发 JavaScript 开发工具
【04】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-正确安装鸿蒙SDK-结构目录介绍-路由介绍-帧动画(ohos.animator)书写介绍-能够正常使用依赖库等-ArkUI基础组件介绍-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
【04】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-正确安装鸿蒙SDK-结构目录介绍-路由介绍-帧动画(ohos.animator)书写介绍-能够正常使用依赖库等-ArkUI基础组件介绍-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
449 5
【04】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-正确安装鸿蒙SDK-结构目录介绍-路由介绍-帧动画(ohos.animator)书写介绍-能够正常使用依赖库等-ArkUI基础组件介绍-全过程实战项目分享-从零开发到上线-优雅草卓伊凡

热门文章

最新文章