我将在前言中说我对硬件级编程很新,并且我对基于德州仪器的MSP432微控制器构建应用感兴趣。
据我所知,要对此控制器进行编程,可以编写C代码,链接到MSPWare库/驱动程序,然后使用gcc进行编译。是否可以获取为此控制器编写的代码并部署到同样基于Cortex M4 32位架构的其他控制器? Cortex M4的各种实现之间存在哪些差异?
答案 0 :(得分:1)
我通常会说,不像x86个人电脑或者Mac,至少用于一个操作系统,并且操作系统允许很多反向兼容性,你今天在dell上写一个程序吧在宏碁工作,可能会在你的日常驱动程序计算机上运行10年或更长时间,或至少在今天运行的10年或更多程序,实际上在10年内今天的程序可能不会运行(在你的手机或大脑植入)
cortex-m4是一个处理器核心,它不会制造芯片,而是制造处理器核心,芯片公司购买并与芯片公司合作。因此,不是说我可以驾驶汽车将我从一辆车转移到另一辆车而且我很有可能驾驶它,而这是我是一个特定尺寸的轮胎并将我从一辆车转移到另一辆车很可能我不工作。
你所调用的库中的几乎所有代码都是针对芯片内部的东西,但是在arm核心之外,特定于芯片供应商的东西。因此,虽然那个特定的芯片供应商可能会在一类芯片内或在相同的生产时间范围内或其他任何时候将其中一个臂芯片的库接近另一个,但这并不意味着代码api或外围设备如何工作以任何方式从该公司的一个芯片系列移植到另一个芯片,当然不是从一个芯片供应商到另一个芯片供应商。您的ti代码可能与您在atmel或nxp或st arm芯片上看到的不相近。
现在说人们正在尝试,mbed的东西是尝试arduino,就像arduino尝试制作足够高的库并将它们移植到特定的板(大多数是在一系列芯片中)一个供应商)。有一些基于arm的尝试来制作arduino库,这样在真正的arduino上开发的代码将为这些基于arm的东西进行编译并且正常工作,但是那些基于arm的东西是特定的板,设计为ardunio兼容并且库很厚并且保持所有从avr / atmel外围设备到任何基于臂的芯片的转换魔术被选中。
mbed可能更接近它,最初只是nxp芯片,但现在有些st st板有st芯片,试图兼容arduino和mbed兼容。不确定这将如何解决。然后有手机当然但是更接近Windows的东西写一个iPhone应用程序它将/应该在所有的iPhone上工作一段时间,即使这些手机都使用不同的基于臂的芯片不同供应商的外围设备差异很大。
这个问题很可能因为主要是基于意见而被关闭,因为这不是一个真正的黑白事实问题。我建议你只是喜欢你买的主板,让LED闪烁和东西,习惯于处理与操作系统相比的全新环境,以及与笔记本电脑/台式机相比非常有限的资源。
如果你有一个特定的移植问题,或者更具特色答案的问题,那就问问一下。如果你想玩这个但最终用它做X(例如将代码移植到stm32f4),它会起作用吗。
现在,很有可能如果你想创建自己的抽象层,那么你可以创建它,使其在多个芯片/平台之上工作。
Arm有这个cmsis的东西,但我认为这是让调试器获得对板的共同访问,你可能知道或者可能不知道或者已经注意到现在访问stellaris启动板tiva C是一个不同的接口/协议现在使用的那个。现在使用的是大力士和现在的msp432(我讨厌它,它绝不是与msp430相关的形状或形式,也许这是pic和pic32之类的东西,除了来自之外绝不相互关联相同的母公司)使用相同的XDS100兼容前端。以前是一个试图成为arduino的板子,比如易于使用的基于Web的环境(arduino是基于java的,不是基于web的,但是在任何地方运行都是这个想法)和很多库,所以你不必知道很多细节,这是mbed,现在mbed似乎成为一个rtos或类似的东西,如为arduino或android编写,你可能......可能......能够在此基础上发展并拥有它的端口。了解越多层,抽象层越厚,所需资源越多,消耗的功率越多,芯片成本越高等等。因此,需要节省一点软件开发时间与价格,尺寸或功耗之间的关系。产品。我们不知道,也不一定需要知道你在做什么,这是你的业务,但是,要使软件“更简单”,便携,可读等方面存在权衡...