创建自己的库非常简单。他们的寄存器规格文档非常好,即使不是全部,大多数外设都易于安装。我发现使用他们的库更加痛苦。但是也许就是我。这对于st,nxp,ti和atmel来说确实如此(仅英特尔和微芯片而言就不多了)。
为什么要更改库,可能有多种原因,一些是新老板接任,一些部门被关闭,另一接任了。营销部门希望产品具有新的形象。正如ElectronS所说,这可能是尝试从硬件中抽象出来,以吸引那些不愿意或不能做裸机的用户。我会进一步讲,他们可能正在尝试与Arduino现象竞争。哪一个mbed以及其他所有人都一直尝试做并且失败了(甚至在Arduino之前)。
无论如何,离硬件越远,它就会变得肿,速度越慢,因此您在rom,ram和mhz上每单位所花费的费用就更多。只是这样您就可以花费相同的时间进行编程?只是做不同的事情?
您说您来自PIC世界,现在他们确实在工具方面做得不错,但是他们的芯片文档却令人恐惧,有些情况最糟。他们用库和沙箱进行了补偿。
在一天结束时,尝试各种选择,尝试竞争的产品,以查看其工具的比较。您可以免费做很多事情,只是看它是否有意义并且您可以编译东西。甚至可以使用指令集模拟器。找到适合您的一个。
请注意,没有固定库选项始终可用。您可以使用什么工具链,什么主机操作系统,什么ide,编辑器等,您不受限制。如果在这方面他们的选择非常有限,那么他们可能会在零件编程时坚持使用它,如果继续使用其他芯片或供应商(如果可以)。
为了销售这样的芯片产品,他们必须提供一个开发环境,而不论它们是全部产品还是粘贴在一起的免费产品。他们倾向于将某种类型的图书馆放在一起。它只需要看起来就足够好,而领导示例的眨眼就足以使您的管理层或硬件团队在他们的产品中进行设计,那么当您的电路板产品被扔到软件上时,就是痛苦的时刻。是否到达。如果这几乎可行,但对于芯片供应商来说不是一个很大的胜利,因为您现在将为此获得一点技术支持。因此,几乎不在那儿是他们的最大利益。
芯片供应商只需要看起来足够好就可以赢得设计大奖。他们必须不断改进(更改)产品以吸引新老客户。因此,他们将有工作要做,相距多远以及继续支持多少个先前的库。因此,您习惯的几乎所有图书馆最终都会消失。因此,学会适应(或不要使用他们的东西而自己去做,可以无限期地支持)。当然,理想情况下,您只需要为每个产品开发一次应用程序,使您的固件完美(如果使用第三方库,祝您好运),并且您无需再去寻找一台可以加载其工具链的计算机。复制它,并记住如何使用该旧库。请记住,不仅应该保存源代码,还应该保存它们的所有工具和文档。
它们的库通常仅在一个工具链上受支持,可能在两个IDE下受支持,有时仅在Windows和某些版本上受支持。同样,如果您做自己的事,那么您将没有任何限制,最绝对不是ARM的限制。您始终可以阅读他们的任何/所有库,以了解他们的工作方式。但这通常很可怕,他们没有使用图书馆的A团队开发人员,我提取了几行代码来询问面试候选人该代码有什么问题。
为了节省芯片和软件方面的时间和精力,它们经常回收相同的ip,因此一旦您看到外围设备如何在其芯片上工作,它在许多其他芯片上的工作方式通常相同。是的,无论有没有它们的库,时钟系统都可能很棘手。对芯片进行砌块的可能性很高,这就是我大多数芯片/板砌块发生的地方。有助于了解其芯片的工作方式,例如AVR的芯片(如果不是全部的话,大多数)可以在芯片复位时进行重新编程,因此不会弄乱重新编程所需的引脚或挂起重新编程所需的逻辑的任何错误代码都不会没关系,您可以重新编程这些芯片。其中一些供应商(第一个)是内部引导加载程序,您可以使用皮带(例如,在st world中为BOOT0)进行选择,
一种尺寸适合所有人,一种适合所有人。对于软件尤其如此。因此,任何将硬件抽象化的尝试都会使其变得缓慢而肿。如果那是您真正想要的,那么最好也可以使用更大的芯片并在上面运行linux。不过,这很多是由于开发人员的结果,他们不想弄脏他们的手,所以我们基本上已经要求这样做了,他们正在尝试提供它。
同样,不要将自己锁定在st或任何一家供应商中(除非为时已晚,并且管理层和/或硬件团队已将其粘在您身上,请注意stm32产品很好且易于使用)。货比三家。德州仪器(TI)将大量鸡蛋放入cortex-m4篮子中。您可以在许多此类Arm产品以及供应商支持的解决方案上完成mbed操作。
您始终可以依赖的一件事是,它们将不时更改库,并最终停止支持您习惯的库。