注:本文是作者以前发表在其个人博客,现在发布到“聚丰开发”专栏
经过一段时间的应用,感觉应广双核单片机在这些方面可以给大家一些提示。
1.
对C的支持相对有限,目前最主要的是不支持乘法(*)和除法(/),如果是想做一些运算的处理需要程序员自己编写相应程序,这样就对程序员的编程技能有一定要求。不过这只是编译器的不足,我相信假以时日应广的技术人员会在编译器中增加对乘法和除法操作符的支持。
(补充说明:现在应广的IDE工具已经支持乘除法,可以由IDE工具直接生成乘除法的汇编代码)
补充一句,***MCU厂商我个人感觉HOLTEK的C编译器最强,真的做得不错,就是MCU价格贵了点。
IDE自动生成的字节相乘代码:
BYTE mul_y1, mul_x1;
WORD mul_t2;
void Byte_Mul_Byte (void)
{ // mul_t2 = mul_x1 * mul_y1
// 16 = 8 * 8
mul_t2$1 = 0;
BYTE cnt;
cnt = 8;
do
{
mul_x1 >>= 1;
if (CF)
{
mul_t2 += (mul_y1 << 8);
}
mul_t2 >>>= 1;
} while (--cnt);
}
2.
汇编和MINI_C都不区分大小写,会对习惯C程序风格的程序员产生小小的干扰。
3.
当电压低于3.3V时,对内部RC的影响会非常之大,我们实测结果是当电压为2.65V时,内部RC的频率已经变慢到3.3V的一半,需要注意的是这个测试和系统时钟的设定有一定关联。
我咨询应广***技术人员他们要求工作电压不得低于2.5V,实测结果是在2.5V以下芯片其实还能工作,就是速度变得很慢,我用少量芯片测试当电压降到2.0时芯片还在正常工作。(对于量产产品建议还是按应广产品手册要求设计供电电压范围)
4.
ADC对采样电压点的输入阻抗要求偏高(芯片数据手册中已经提到此点),我们通过两个电阻分压测量电池电压,系统时钟为8M,ADC时钟为系统时钟16分频,如果用51k/39k,ADC结果不对,改为5.1k/3.9k才能得到正确结果。这个特性对需要高速AD测量并且是电池供电的设计有不良影响,如不做特殊处理待机状态下分压电阻会有几百微安得电流损耗。
5.
还是编译器的问题,目前MINI_C只支持无符号数,如果需要处理有符号数,还得需要程序员自己想拌饭。
6.
应广的MCU在待机电流方面做得还不错,我们实测结果是3.3V为0.65uA,2.5V为0.3uA。
全部0条评论
快来发表一下你的评论吧 !