本帖最后由 zhjb1 于 2025-4-21 09:32 编辑
您好!有件事想说一下:
感觉国产芯片推广不好有许多原因,其中开发比较困难有一定关系。
比较而言STM的生态相对比较发达,问问题解答回答较多,提出也能得到解决,AT的芯片主频比同级别STM高,有一定优势,也有自己的Work_BenchMark开发平台,但有个问题是他没有像STM有HAL或LL公共库,因此按照WBS设置后在keil或IAR中编程许多情况下找不到如何启动一个模块的代码,而采用以前的BS案例中的代码又不能运行,在许多具有特殊应用场合开发起来有点困难,也许对有经验的AT使用者小菜一碟但对初入此道会困难不少。
我的建议:
1.将基本模块经过BS设置后可以成功运行的代码附加在后边,以Example例句的方式显示出来,再将主函数如何调用附加在上。
例如MBED:
* DigitalOut led(LED1);//定义输出LED(LED1是MBED自定义的一个固定GPIO,可以更改任意GPIO)——定义方法
* int main() {
* while(1) {
* led = !led;//实际应用
* wait(0.2);
* }
* }
他的宏定义GPIO的文件名是PinName.h,里面的都可以重新定义。
例如它定义16位数据线:
BusInOut(PinName p0, PinName p1 = NC, PinName p2 = NC, PinName p3 = NC,
PinName p4 = NC, PinName p5 = NC, PinName p6 = NC, PinName p7 = NC,
PinName p8 = NC, PinName p9 = NC, PinName p10 = NC, PinName p11 = NC,
PinName p12 = NC, PinName p13 = NC, PinName p14 = NC, PinName p15 = NC);
只需要将GPIO按照低高码上即可,下边是8位地址线的定义:
BusOut myBus(P0_8,P0_9,P0_28,P0_27,P0_26,P0_25,P0_24,P0_23);
主函数中只需要将1个字节的数据输出到myBus即可。
实际上早期的寄存器操作相当快捷方便正确,但由于芯片的发展,GPIO的复用技术,造成寄存器读写也需要2或以上层才能完成,所以进入到复杂的过程。
如何将一个东西做的简单最好用,在高级编程方法上,使用户只要简单的桥补偿的几行代码或拷贝复制一些代码,修修改改就OK是最好的。
我设计过一个模拟放大器,电路非常简洁+-10exp5的放大倍数(相当于正负100000的放大倍数他能适应+-65536的放大要求),全程线性度由于0.001%,使用单位测试的。
2.专门培养几个热心与AT的工程师,让他们掌握这些方法在网站答惑解疑,以减轻厂家工程师FAE的工作。
仅此,谢谢
|