jicheng0622

【笔记杂谈】函数库封装中的“RISC”和“CISC”概念

0
阅读(3016)

     今天在跟同事一块儿聊的时候,聊到了各厂家或者第三方为其微控制器产品(MCU)开发的底层驱动库问题。我们知道,随着基于ARM内核的产品越来越多的被应用到工业及消费等各个领域,越来越多的客户提出了对底层驱动库的需求,当年的老8位或者16位MCU比较简单,基本用不上底层驱动库,自己照着手册一步步就写出来了,但是32位的ARM产品则有了一定的技术门槛,如果客户想要尽快的缩短开发周期的话,底层驱动库则是一个很好的助力,可以说底层驱动库的出现基本上是由客户的需求带来的。(没办法,现在竞争激烈的MCU领域是买家市场,再也不是当年的风风光光的卖家市场了,呵呵)

    本篇博客是我第一次以“笔记杂谈”的形式来写的,主要就是想轻松的记录下自己偶尔的心得体会,一时的灵感一时的感悟和一时的了然常常是稍纵即逝而且有些是不可复现的,如果不把握机会及时记录下来,丢掉了就永远丢掉了,所以文字的重要性不言而喻了吧,呵呵。扯的有点远了哈(我发现自己的发散性思维很活跃啊,常常就跑题的讲),回到文章的标题上来,“RISC”和“CISC”相信大家伙多不会陌生,即精简指令集(比如ARM)和复杂指令集(X86架构),形象的比喻两者的区分,即执行同样的功能或者任务精简指令集需要多条指令的情况下,复杂指令集有可能一条指令就可以搞定了,这就造成了复杂指令集的系统性能往往是最强的,但是精简指令集的优势则在于低功耗和低成本,各有优缺点。

    我突然联想到一个问题,如果将底层库和这两个指令集的概念结合起来看,我们开发底层接口函数库的时候何尝不是在“RISC”和“CISC”这两个概念之间做权衡,即我们开发出来的针对某个功能的函数库接口风格是留出该功能的每个子功能接口函数用来留给客户自己做定制调用还是只留出该功能的一个函数库接口即可,其他的具体子功能则在内部自己配置实现,无需用户区干预和选择。实际上,我们在自己开发函数库接口的时候一般都是结合两者来做的。

    好了,今天干活干得有点晚,困的不行了,赶紧睡觉去了,再聊,未完待续~