1、配置算法初始信息
要在CDK 中制作一个特定芯片的方案,需要通过New SOC Project 创建一个Flash 类型的CDK 工程。
此时Project Type 选为Flash,并在RAM1 中填写SmartL 的RAM 区域。CPU 和对应SDK 的CPU 要完全一致。
完成工程创建以后,工程视图显示内容如下:
FlashDev.c 文件用来对算法基本信息进行描述。
将默认的内容修改为SmartL 硬件信息相匹配即可。
2、实现算法接口
Driver.c 文件用来实现算法逻辑,针对具体的硬件信息,实现对应的接口。
3、调试算法逻辑
main.c 文件是算法工程的主控逻辑,main 函数完成此功能。
CDK 通过下载此算法工程到芯片RAM 的g_rwBuffer[]数组中,然后通过控制g_func,g_dstAddress,g_length,g_checksum 这些全局变量,实现对特定Flash 器件的编程功能。这里需要调试算法文件,就是模拟整个烧写的过程,将每个函数调试通过即可。
为了能够更方便的调试算法文件,右击算法工程,在Compiler 配置中,修改Optimization修改为-O0 ,然后再次编译算法工程。
双击工程视图的算法工程节点,设置为active project,然后点击调试按钮,启动调试,运行到main 函数以后,全速运行,发现算法文件停止在__bkpt_label 函数处。
然后,我们这里根据调试需求,设置相应的全局变量,进行验证。
例如,这里我们调试flashProgram 接口的正确性,首先在CDK Watch 界面将g_func设置为1,g_dstAddress 设置为要进行编程的Flash 区域的地址,g_length 设置为要烧写的数据长度,g_rwBuffer 设置为具体的烧写数据内容,一般来说,对于调试,g_length数据量不需要太长。
这里我们设置向Flash 区域0x0—0x8 区域烧写0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8 特征数据,来验证算法文件的正确性。CDK 中设置好这些变量以后,把PC 的值设置为当前lr(r15)的值,然后点击单步运行。
点击单步运行,程序运行在main.c 文件的flashProgram 入口,然后通过常规的调试手段,进入该函数内部,运行函数完成以后,验证是否正确烧写。
按照上述手段,分别验证每个函数的正确性即可。
4、配置算法文件到SDK 工程
当完成整个算法文件调试以后,为了更好的提升算法文件的性能,这里我们将算法工程的Compiler 编译选项由-O0 修改为-O2 , 然后重新编译, 编译完成以后, 将SmartL_Flash 工程根路径下Obj/目录中生成的SmartL_Flash.elf 算法文件copy 到my_solution 工程使用的SmartL_Chip 组件的目录中去,CDK 工程视图右击菜单OpenContaining Folder 选项,可以直接打开工程、组件所在的目录。
然后在工程视图SmartL_Chip 组件节点的配置窗口中,配置SmartL_Flash.elf 作为算法文件。
【情况1】
对于没有使用芯片组件或者使用旧版本的组件的情况,则需要将SmartL_Flash.elf 拷贝到my_solution 工程根路径下(与my_solution.ckdproj 文件同目录),然后在工程配置的Flash Tab 的算法选择中,选择该组件即可。
以上内容摘自《平头哥剑池CDK快速上手指南》电子书,点击https://developer.aliyun.com/topic/download?id=1072可下载完成版
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。