msp432-为TI msp432 ARM Cortex M4编写的代码能否自动移植到其他Cortex M4微控制器?

msp432-为TI msp432 ARM Cortex M4编写的代码能否自动移植到其他Cortex M4微控制器?,arm,cortex-m,Arm,Cortex M,首先,我要说的是,我对硬件编程相当陌生,我对基于德州仪器公司的MSP432微控制器构建应用程序很感兴趣 我知道要编写这个控制器,需要编写C代码,链接到MSPWare库/驱动程序,并使用gcc进行编译。是否可以将为该控制器编写的代码部署到同样基于Cortex M4 32位体系结构的其他控制器?Cortex M4的各种实现之间有什么不同?我会说,一般来说,与x86 pc或mac不同,在x86 pc或mac上,大众至少习惯于一个操作系统,并且该操作系统允许很多反向兼容性,你今天在戴尔上编写一个程序,它

首先,我要说的是,我对硬件编程相当陌生,我对基于德州仪器公司的MSP432微控制器构建应用程序很感兴趣


我知道要编写这个控制器,需要编写C代码,链接到MSPWare库/驱动程序,并使用gcc进行编译。是否可以将为该控制器编写的代码部署到同样基于Cortex M4 32位体系结构的其他控制器?Cortex M4的各种实现之间有什么不同?

我会说,一般来说,与x86 pc或mac不同,在x86 pc或mac上,大众至少习惯于一个操作系统,并且该操作系统允许很多反向兼容性,你今天在戴尔上编写一个程序,它在宏碁上工作,并且可能会在你的日常驱动电脑上运行10年或更长时间,或者至少有许多10年或更长时间的程序今天运行,实际上在10年后,今天的程序可能不会运行(在你的手机或大脑植入物上)

cortex-m4是处理器核心,arm不生产芯片,他们生产芯片公司购买的处理器核心,周围都是芯片公司的东西。因此,与其说我可以驾驶一辆车,把我从一辆车开到另一辆车,我很有可能驾驶它,相反,这是一个特定尺寸的轮胎,把我从一辆车开到另一辆车,我很可能不工作

你调用的库中几乎所有的代码都是针对芯片内部的东西,但在arm内核之外,是针对芯片供应商的东西。因此,尽管特定的芯片供应商可能会在一类芯片或在相同的生产时间框架内或其他任何情况下,从一个arm芯片到另一个arm芯片,制造接近相同的库,这并不意味着代码API或外围设备的工作方式在某种程度上可以从该公司的一个芯片系列移植到另一个芯片系列,当然也不能从一个芯片供应商移植到另一个芯片供应商。您的ti代码可能与您在基于atmel、nxp或st arm的芯片上看到的代码不太接近

现在说有人在尝试,mbed是一种像arduino一样的尝试,arduino是一种尝试,试图制作足够高的库集,并将它们移植到特定的板上(这些板大多是来自一家供应商的一系列芯片)。有一些基于arm的尝试来制作arduino库,这样在真正的arduino上开发的代码就可以为这些基于arm的东西编译并正常工作,但是这些基于arm的东西是专门设计的板,可以与ardunio兼容,而且库很厚,可以容纳所有从avr/atmel外围设备到所选基于arm的芯片的转换魔法

mbed可能更接近它,最初只是nxp芯片,但现在一些st板使用st芯片,试图同时兼容arduino和mbed。我不知道那会怎样

当然也有手机,但这离windows要近得多。编写一个iphone应用程序,它将/应该在所有iphone上运行一段时间,尽管这些手机都使用不同厂商的基于arm的芯片,外设也大不相同

这个问题可能会因为主要基于观点而被关闭,因为它不是一个真正的黑白事实问题。我建议你只是喜欢你买的主板,让LED灯闪烁之类的东西,习惯于处理与操作系统相关的全新环境,以及与笔记本电脑/台式机相比非常有限的资源

如果您有一个特定的移植问题,或者是一个答案更具体的问题,那么就这样问吧。如果您想使用它,但最终使用它执行X(例如,将代码移植到stm32f4),它会工作吗

现在,如果您想创建自己的抽象层,那么您可以创建它,使其在多个芯片/平台上工作


Arm有这个cmsis功能,但我认为这是为了让调试器能够共同访问主板,您可能知道,也可能不知道,或者已经注意到,现在访问stellaris launchpad tiva C与现在使用的接口/协议不同。现在使用的是hercules,现在的msp432(我讨厌,它的形状和形式与msp430没有任何关系,也许这是pic与pic32的区别,除了来自同一家母公司外,它们之间没有任何关系)使用相同的XDS100兼容前端。以前是一个图板,它试图成为arduino那样易于使用的基于web的环境(arduino是基于java的,不是基于web的,但可以在任何地方运行),还有很多库,所以你不必知道太多细节,这是mbed,现在mbed似乎正在成为一个rtos或类似于为arduino或android编写的东西,您可能……可能……能够在此基础上开发并拥有它的端口。理解层越多,抽象层越厚,需要的资源越多,消耗的电源越多,芯片成本就越高,等等。因此,这是节省一点软件开发时间与产品的价格、大小或功耗之间的权衡。我们不知道,也不一定需要知道您在做什么,这是您的业务,但是,要使软件“更简单”、可移植、可读等,还有一些折衷办法。

谢谢您的回答和观点。这并不完全出乎意料,它不是那么容易。多态性是一个很好的理想,但这取决于我使用的金属。你关于mbed的观点被采纳了——这些板的价格是msp432的两倍。此外,大脑植入物的商标将是Cortex InU:)lol。。。实际上,例如,一个/一些stm32核子板至少在10美元或11美元左右,比msp432便宜。他们有mbed支持。现在