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天前
|
算法 测试技术 开发者
在Python开发中,性能优化和代码审查至关重要。性能优化通过改进代码结构和算法提高程序运行速度,减少资源消耗
在Python开发中,性能优化和代码审查至关重要。性能优化通过改进代码结构和算法提高程序运行速度,减少资源消耗;代码审查通过检查源代码发现潜在问题,提高代码质量和团队协作效率。本文介绍了一些实用的技巧和工具,帮助开发者提升开发效率。
15 3
|
3月前
|
数据采集 开发工具 Python
海康威视工业相机SDK+Python+PyQt开发数据采集系统(支持软件触发、编码器触发)
该系统基于海康威视工业相机SDK,使用Python与PyQt开发,支持Gige与USB相机设备的搜索及双相机同时显示。系统提供软件触发与编码器触发模式,并可在数据采集过程中实时保存图像。此外,用户可以调节曝光时间和增益,并进行信息输入,这些信息将被保存至配置文件以便下次自动加载。参数调节与实时预览等功能进一步增强了系统的实用性。
178 1
|
3月前
|
算法 NoSQL 中间件
go语言后端开发学习(六) ——基于雪花算法生成用户ID
本文介绍了分布式ID生成中的Snowflake(雪花)算法。为解决用户ID安全性与唯一性问题,Snowflake算法生成的ID具备全局唯一性、递增性、高可用性和高性能性等特点。64位ID由符号位(固定为0)、41位时间戳、10位标识位(含数据中心与机器ID)及12位序列号组成。面对ID重复风险,可通过预分配、动态或统一分配标识位解决。Go语言实现示例展示了如何使用第三方包`sonyflake`生成ID,确保不同节点产生的ID始终唯一。
go语言后端开发学习(六) ——基于雪花算法生成用户ID
|
3月前
|
数据可视化 API 开发工具
影创SDK☀️三、工程默认配置,及基础测试建议
影创SDK☀️三、工程默认配置,及基础测试建议
|
3月前
|
存储 监控 开发工具
Django 后端架构开发:手机与邮箱验证码接入、腾讯云短信SDK和网易邮箱
Django 后端架构开发:手机与邮箱验证码接入、腾讯云短信SDK和网易邮箱
62 0
|
4月前
|
NoSQL 开发工具 数据库
开发与运维测试问题之应用启动报 Can not load this fake sdk class 的异常如何解决
开发与运维测试问题之应用启动报 Can not load this fake sdk class 的异常如何解决
|
5月前
|
机器学习/深度学习 算法 BI
机器学习笔记(一) 感知机算法 之 原理篇
机器学习笔记(一) 感知机算法 之 原理篇
|
5月前
|
算法 Java API
记录我第一次在Android开发图像处理算法的经历
记录我第一次在Android开发图像处理算法的经历
35 1
|
5月前
|
API 开发工具
抖音sdk,抖音开发api接口
抖音sdk,抖音开发api接口
|
6月前
|
算法 C++
c++算法学习笔记 (21) STL
c++算法学习笔记 (21) STL
下一篇
无影云桌面