本帖最后由 王昱顺 于 2024-9-24 22:42 编辑
技术手册太多太长,看不明白,相信这是每个初学者都有过的经历。依稀想起我之前初学高级PWM的时候,被PWM中的各种寄存器和信号链接搞得晕头转向。所以,我才想通过使用小工具来简化这些复杂模块的配置过程。 后来,我也学习了FPGA、试过了PWM的各种高级功能,也理解了各种例程。逐渐理解模块设计的过程中,功能强大后,寄存器设置就不可避免的变得复杂了。从单片机的设计和寄存器配置层面来讲,显然在这部分做优化不是很现实。因为功能的需求摆在这里,很难说要如何才能配置的更简单。而且类似高级PWM这种,其实最重要的部分还是含有各种计算的情况,各种频率和时钟的设置,才会让人看的迷糊。 正好近来STC也给新出的8051U单片机改名为AI8051U,显然是想要向AI方向靠近。并且,我对于STC的IO配置工具,延时计算器这些小工具也十分喜欢。所以我才想对这些高级功能配置进行补全。并且借着这个小工具,实实在在的实现一些类似于AI的功能(芯片端跑AI我也不大会,退而求其次,就给编程上提升一点AI能力吧)。
说起AI功能,可能大家想起来就是常见的ChatGPT这种可以理解复杂指令的人工智能。 其实,专家系统、自然语言处理、图像自动处理这些都可以算是AI领域的功能,就比如说代码自动生成工具,本质上也算AI的一种,不过显然是人工部分更多一些。但是要我看,比起拿chatgpt这种通用模型生成实际的配置库,还是不如使用小工具配置来的准确。因为chatgpt的资料容易受到网络错误信息或者学习库不准确知识的污染,配置出来的代码只能算是差不多对,在实际的编程工作中,也仅仅能作为参考。 所以,我目前正在做的这个小工具试点“STC-PWM配置小工具“就同时包含了点击配置和自然语言配置,通过对各个选项之间逻辑关系的约束,可以保证就算是胡乱点的配置,生成的代码也是绝对可以运行的。 加入自然语言配置,其实是用来与真正的ChatGPT这种进行接轨的,因为现在这些AI已经拥有了添加文档进行处理的功能。所以,可以对小工具编写详细的使用功能说明,让AI理解使用何种格式的自然语句可以进行配置。这样,包含说明文档后,直接对AI描述自己的功能需求实现,就可以得到几条详细的自然语言配置句子。将这些句子塞到对应的小工具,即可生成对应的配置代码。此时如果出现不满意的效果,也可以直接在配置工具上方的各种选项中进行更改。让GPT通过需求生成功能描述,这其实才是GPT最擅长的工作。 作为小工具,易用性才是最重要的功能,目前已经实现了自然语言配置功能。但是这远远不够,之后还将支持配置回传,即通过使用注释添加一条当前工具的选项配置信息,方便之后想要更改时,复制配置信息到小工具,即可快速复现之前配置的状态,方便进行更改。
至于为什么我要开发小工具,而不是类似CubeMX的那种工程一键配置呢?首先肯定是,我这三脚猫功夫写不出来CubeMX这种东西。其次,我并不觉得CubeMX做的非常易用。从相互比较来看,使用寄存器配置灵活性最高,但是最麻烦,使用库函数配置,灵活性会受到库函数本身实现的限制,并且有可能带点小bug。不过相比寄存器配置已经简单许多了。这通常也是大家编写程序常用的一种。而使用CubeMX配置,其实是库函数配置的图形化界面。简单程度并没有非常大的进步,该看不懂怎么配置还是不懂,并且仍然保持着库函数的bug。 而小工具就不同了,虽然说界面没那么精美,但是使用了寄存器操作就意味着保留了最小的代码体积和最大的配置灵活性。并且可以完全适配裸机开发或者操作系统开发,因为本质就是配置了外设,并没有对实际的运行做任何更改。 并且,引入了自然语言配置后,就可以通过让人更容易理解的,平常说话的句子进行配置了。使用GPT进行协助操作的话,甚至可以实现快速理解配置内容,根据需要准确选择,然后进行微调,大大加速了开发流程。
虽然说现在小工具就实现了一部分,但是我还是很希望实现,仅仅描述一下功能,就可以完成一个真正能用的,好用的程序开发,让开发工作更加简单流畅,而不必纠结于某个功能的奇怪配置实现。
|