鸿蒙os liteos-m版,是面向嵌入式的分支,看代码 arch 目录下,有 cortex m4 架构的支持的代码。
cortex m4相对于其他mcu芯片的优势,支持浮点、dsp等运算,适合某些需要一定计算量的领域。但是,需要说明的是,cortex m4的浮点运算,也只是“单精度”浮点运算;“双精度”的浮点运算,就需要通过函数模拟了,可以说效率非常的低下。以下利用keil,选择cortex m4芯片,生成的“双精度”和“单精度”除法代码比对,箭头处的函数可以非常清楚的看出两者的性能差别。
![70eb50f9ad81292e2e8fe73a803e0439.png](https://img-blog.csdnimg.cn/img_convert/70eb50f9ad81292e2e8fe73a803e0439.png)
接下来要说到本文的重点,鸿蒙os的时钟计算函数。注意下图红框中的代码。仅这一行代码,就需要至少两次双精度浮点除法运算,这还不包括UINT64转DOUBLE的代码。可以说,又占代码空间、效率又低。要知道,在mcu领域,蚊子腿肉也是肉,能省一点是一点。有时候一个疏忽,原本电池能支持3个月的小设备,到你这儿就只能工作一周了。
![261b42f5cbbbbd5656cff72d3300efa1.png](https://img-blog.csdnimg.cn/img_convert/261b42f5cbbbbd5656cff72d3300efa1.png)
那么,