历史上的今天
返回首页

历史上的今天

今天是:2024年09月08日(星期日)

2020年09月08日 | CPU移植到32平台有必要吗?低成本32位CPU移植案例分享

2020-09-08 来源:elecfans

一个8位的或者16位的CPU或许能够满足你当前的应用需求。但是为了保持竞争力,你必须对你的产品做出持续不断地改进,包括你要不断的增加它的新特性、不断地提升它的速度,并在提升它规格的同时降低成本。如果你不做这些,而你的竞争对手在做,你将被甩开。


保持竞争优势的一个方法是通过逐步改善你现有的设计。但随着时间的推移,架构的限制可能会是这个过程变得越来越缓慢,成本也越来越高。因此你可以将你的设计移植到32为平台,这会提升你产品在以下几个方面的性能。

CPU移植到32平台有必要吗?低成本32位CPU移植案例分享

表1:移植到32位平台的优势

你真的需要将你的产品移植到32位平台吗?

当你把产品重一个8位的CPU移植到一个32位的CPU上面的时候,有几点时一定要考虑的。首先是你现有的CPU是否仍然时可用,你将产品搬到32为平台是否能够有一个优势的提升或者性能的改进。8位的应用程序通常是通过简单的计算实施基本的感知和控制。8位的CPU在计算值低于256的时候,它的位操作和应用程序的表现是很好的,例如一个广为人知的架构8051。


即使最小的32位CPU也能做到8位CPU所能做到的一切,如图1所示。

1、能够处理更复杂的计算。例如包括本机自带的DSP、图像处理以及姿势识别功能。

2、数据挖掘和分析、数据库查找。

3、实时的多任务处理系统。

CPU移植到32平台有必要吗?低成本32位CPU移植案例分享

图1-使用Dhrystone做基准的单片机性能比较


即使你不需要使用上述的这些强大性能,32位CPU也能从如下几个方面提升你的设计:

能耗:例如这样一个常见的低功耗设计:CPU先处于睡眠的低功耗模式,定期醒来并在主动模式下执行代码(图2)。在两种模式下32位CPU可能需要比8位CPU更多的用电,但32位CPU花更少的时间执行代码。因此,32位CPU更多的时间是在低功耗模式下的。在许多情况下,这可能会导致它的平均功率比8位CPU更小。

CPU移植到32平台有必要吗?低成本32位CPU移植案例分享

图2:计算密集型任务的平均能耗比较


可升级:现在,大多数CPU的销售是跟着一个可以从低性能升级到高性能的产品系列销售的。如果你的的产品想要升级,那么你的CPU也是必须可以升级的。CPU升级是就从以下方面而言的:

1、指令集、系列里的高端成员应该有更多的指令或者更多现有指令的操作模式,同时保持对低端成员的的向后兼容性。

2、更多的寄存器、或者现有的寄存器有更多的定义位。

3、更多的功能,例如中断控制和调试。

ARM Cortex-M处理器家族是CPU可升级的最好的例子。如图3所示:

CPU移植到32平台有必要吗?低成本32位CPU移植案例分享

图3-ARM Cortex-M处理器家族概述

成本:也许会有一个感知的错误,会认为32位CPU会花费跟多的成本。但是随着技术的发展,32位的CPU不一定会比8位的CPU贵,现在已经有很多的低成本的32位CPU了。例如:因为它简单的设计和占有小硅区域的ARM Cortex-M0内核,使它更加划算。举一个Cypress半导体入门级PSOC 4000CPU为例,它只有0.29美元的价格。


此外,表1显示支持高代码密度和更快执行速度的32位CPU可以帮助降低成本。


这不仅仅关系到CPU

通常只关注您的固件代码移植到新的CPU。但是,请记住CPU只是MCU的一部分,MCU可以尽可能的为它的CPU提供改进机会去满足客户的改进要求。例如:

1、MCU的外围设备能够提升产品的功能吗?

2、外围设备操作能使用更少的代码吗?能够降低CPU的负载吗?这可能导致该系统使用更少的内存,可能降低成本。

3、该器件可以帮你节省板级和系统级的成本吗?例如,你可以将PCB板上的某些功能移动到MCU里。

4、MCU足够灵活,能够让你适应不断变化的需求,而不必制定新电路板吗?


最后,请注意,单片机设备通常只有集成开发环境(IDE)支持它。确认新的IDE不仅仅是一个编辑器,编译器和调试器。IDE使您能够快速构建整个应用程序、使用单片机的硬件特性以及固件可以显著加速设计。开发工具包和应用笔记也很有帮助。


代码移植技巧

如果你决定移植一个设计到32位CPU上去,记住这些注意事项:

选择一个入门级的32位CPU /单片机和IDE。作为你的第一个移植进入32位器件代码,请保持它简单,这将减少引入缺陷的风险,你也会熟悉32位设计的不同之处。选择一个基本的入门级设备,以及一个IDE,可以简化移植过程。Cypass半导体的一个例子是PSoC 4000MCU,由PSoC创造IDE支持。


选择一个新的编译器。当你代码移植到一个新的CPU,你也必须选择一个新编译器。大量的编译器,其中一些是免费的,可用于32位CPU。例如:GCC,ARM/Keil MD,IAR。

让你的构建和调试工具工作。创建一个小测试程序,例如闪烁LED灯。你会获得使用新工具的经验,这将帮助您完成下面的步骤。


汇编代码重写。理想情况下,你的现有代码应该用C(或者其他一些更高级的语言)。任何8位处理器的汇编语言代码是不可移植的。如果你在当前设计中有任何的汇编代码,考虑在C下面重写它,在开始移植过程开始之前。


封装特别的代码。如果你的代码已经模块化了(编码最佳实践)。代码的移植直接与单片机寄存器对应,比如读I /O端口,应该和文件中和其余部分的代码分开。在这些文件中封装代码并按功能命名,例如UART_Receive()。然后你可以重写这些功能为新的单片机无需更改代码的其余部分。


其他体系结构更改一个新的单片机可能允许您卸载功能从CPU到外围设备。此外,一个新的IDE可以自动生成代码。利用这些特性,考虑重新建构代码的部分或全部。


因为32位CPU更容易实现任务切换,考虑重新建构代码作为一组单独的任务被一个实时操作系统(RTOS)使用。例如:32位系统RTOS供应商Segger和Micrium。


增加的构建和调试,在设计新代码时,最佳的做法是小部分小部分的增加、测试和调试代码。这使得它更容易找到并修复缺陷。这同样适用于移植——在新的MCU上移植、测试和调试代码也是一部分一部分的进行。


CPU和MCU举例,为了对移植过程有更好地理解,让我们来详细了解一下上下文中ARM Cortex-M0和PSoC 4000。ARM Cortex-M0处理器是最小的ARM核心。其寄存器架构(图4)和指令集使它支持C工具。

CPU移植到32平台有必要吗?低成本32位CPU移植案例分享

图4:Cortex-M0登记册架构

所有寄存器都是32位,使用32位寻址,拥有4Gbyte地址空间。大多数8 位CPU仅限于64Kbyte的地址空间。

有12的通用寄存器。(低寄存器R0-R7有更多的支持指令集)。特殊寄存器包括:

双堆栈指针(R13)来帮助实现一个实时操作系统(RTOS)

链接寄存器(R14)快速从函数调用返回

程序计数器(R15)

程序状态寄存器(PSR)包含指令的结果如零和保持标志以及当前异常数

中断屏蔽寄存器

控制寄存器控制堆栈指针哪个有效

Cortex-M0核心指令集设置简单但功能强大并且有大量的处理模式。它拥有优秀的代码密度。从一个8位的CPU将C代码移植到Cortex-M上,CPU经常使用更少的内存。

ARM Cortex-M系列CPU指令流水线,如图5所示。这就增加整体代码执行速度,因为CPU可以执行一条指令的同时抓取和解码后续指令。

CPU移植到32平台有必要吗?低成本32位CPU移植案例分享

图5:Cortex-M处理器中的流水线划分

ARM Cortex-M CPU系列集成支持中断直接进入CPU内核,使用一个嵌套矢量中断控制器(NVIC)。NVIC功能包括:

自动动态优先级和优先等待中断嵌套

低延迟——CPU自动存储和恢复其状态没有指令的开销

迟到——一个高优先级的中断在一个低优先级中断服务堆栈推操作期间到来时被优先执行。

这些特性能够更快并决定中断处理。系统定时器”SysTIck”促进RTOS的使用和可以操作在CPU睡眠,也包括在内。有高水平中断支持可用,您可以考虑改变你的架构更依赖中断处理。

ARM的Cortex-M处理器系列集成调试功能在CPU内核,支持多个IDE便于调试。

Cortex-M0内核是Cortex-M处理器大家庭的一部分,它们有相同的寄存器架构和执行部分或全部Thumb-2指令集,这使得它更容易升级到一个更强大的CPU。例如Cypress的PSoC 5 LP Cortex-M3处理器。

PSoC 4000是入门级PSoC 4系列的一员。除了Cortex-M0处理器,它有一组可灵活动态配置外围设备,如图6所示。

CPU移植到32平台有必要吗?低成本32位CPU移植案例分享

图6:PSoC 4000框图

这种CPU也有电容式触摸感应特性。电容式感应在成本、性能和防静电保护方面比机械按钮有显著的优势。

电容式感应功能包括:

容易实现按钮、滚动条和接近报警解决方案,每个I/O引脚拥有16个输入路经

高信噪比(信噪比)确保在嘈杂的环境中的触摸精度

SmartSense自动调节速度和不需要校准

电容式感应块包括两个DAC和一个比较器,您可以把它用作其他目的如果CapSense不需要使用。

Cypress也提供PSoC开发工具,一个适用于PSoC3、4和和5 LP设备的集成设计环境(IDE)。PSoC开发工具是一个免费的基于windows的IDE支持PSoC-based系统的硬件和固件设计。

你可以使用经典的,熟悉原理图来设计。组件包括自动生成API代码,可以大大减少您编写的代码量。使用PSoC开发工具是很容易实现在PSoC系列之间的设计移植在。如图7所示。

您还可以导出PSoC的设计到其他IDE,例如:µVision 和IAR。

CPU移植到32平台有必要吗?低成本32位CPU移植案例分享

图7:PSoC开发工具进行组件配置


现在升级遗留8位和16位设计到32位平台是很简单的,同时仍然满足成本目标。几个因素必须牢记当计划移植到一个新的CPU;要选择的一个初级32位单片机并且有好的IDE支持。

推荐阅读

史海拾趣

Display Engineering Services公司的发展小趣事

以下是五个电子行业里Display Engineering Services公司发展起来的相关故事:

故事一:
在科技日新月异的今天,XX公司凭借其在Display Engineering Services领域的专业技术和创新能力,逐渐崭露头角。起初,XX公司只是一家专注于显示屏研发的小型技术公司,但在市场需求的驱动下,公司意识到为客户提供定制化的显示屏解决方案具有巨大潜力。于是,XX公司开始将重心转移到Display Engineering Services上,通过深入了解客户需求,提供从设计、制造到安装的全流程服务。经过数年的努力,XX公司不仅积累了丰富的经验,还建立起一支专业的技术团队,赢得了业界的广泛认可。

故事二:
YY公司的发展历程颇具传奇色彩。该公司最初只是一家为电子产品提供显示屏配件的供应商。然而,随着市场竞争的加剧,YY公司意识到单纯提供配件已无法满足客户需求。于是,公司决定转型为Display Engineering Services提供商,致力于为客户提供显示屏的定制设计和优化服务。YY公司凭借其卓越的技术实力和敏锐的市场洞察力,成功转型,并在短时间内实现了业务的快速增长。如今,YY公司已成为行业内的佼佼者,其显示屏解决方案广泛应用于各个领域。

故事三:
ZZ公司是一家专注于Display Engineering Services的创业公司。在创立之初,公司面临着资金短缺、技术瓶颈等诸多困难。然而,创始人凭借对技术的热爱和对市场的敏锐洞察,带领团队攻克了一个又一个技术难题。同时,ZZ公司还积极寻求外部合作,与多家知名企业建立了紧密的合作关系,共同开发具有市场竞争力的显示屏产品。在团队成员的共同努力下,ZZ公司逐渐在Display Engineering Services领域崭露头角,成为了一家备受瞩目的创新型企业。

故事四:
AA公司的发展历程充满了挑战与机遇。在成立初期,公司面临着激烈的市场竞争和不断变化的客户需求。为了应对这些挑战,AA公司决定加大研发投入,不断提升自身的技术实力。同时,公司还积极拓展国际市场,与全球多家知名企业建立了合作关系。通过不断的技术创新和市场拓展,AA公司逐渐在Display Engineering Services领域树立了良好的品牌形象,赢得了客户的信赖和支持。

故事五:
BB公司是一家历史悠久的Display Engineering Services企业。多年来,公司始终坚持以客户需求为导向,不断提升服务质量和技术水平。为了保持竞争优势,BB公司不断引进先进的生产设备和技术人才,加强内部管理和质量控制。同时,公司还积极参与行业交流和合作,与国内外多家知名企业建立了良好的合作关系。在多年的发展中,BB公司积累了丰富的经验和技术优势,成为了行业内的领军企业之一。其显示屏解决方案广泛应用于各个领域,并获得了多项国内外技术专利和荣誉。

Facon公司的发展小趣事

在竞争激烈的电子行业中,品牌形象对于企业的成功至关重要。Facon深知这一点,因此他们始终注重品牌塑造和形象维护。通过举办技术研讨会、参加行业展会等方式,Facon不断向外界展示自己的技术实力和产品优势。同时,他们还积极参与公益活动和社会责任项目,提升企业的社会形象。这些努力让Facon在消费者和合作伙伴中树立了良好的品牌形象。

AEC Design公司的发展小趣事
随着公司规模的扩大和市场地位的提升,AEC Design公司开始注重品牌建设。通过精心策划的品牌推广活动、优质的客户服务以及完善的售后服务体系,公司的品牌形象逐渐深入人心。消费者对公司的信任度和忠诚度不断提高,为公司的长期发展奠定了坚实基础。
正泰公司的发展小趣事

为了吸引和留住优秀人才,正泰公司实施了股权激励计划。公司创始人南存辉为了推动公司从“家族企业”向“集团企业”过渡,坚决开展“股权配送”,让更多优秀人才得到股权激励。这一举措不仅激发了员工的积极性,也促进了公司的快速发展。同时,公司还注重人才培养,鼓励员工参加各类培训和学习,提升个人能力和素质。

昭华(CHA)公司的发展小趣事

随着市场需求的不断变化,昭华公司敏锐地捕捉到了防水型轻触开关的市场潜力。他们投入大量资金进行技术研发,成功开发出了一系列防水性能优异、稳定性强的防水型轻触开关。这些产品一经推出便受到了市场的热烈欢迎,为昭华公司带来了可观的利润。此外,昭华公司还不断探索新的技术路线,成功将LED与开关结合,推出了发光开关系列产品,进一步丰富了公司的产品线。

Advanced_Linear_Devices_Inc.公司的发展小趣事

随着市场需求的不断增长,ALD不断拓展其产品线。除了最初的CMOS线性集成电路外,公司还研发出了轨到轨运算放大器、双斜率A/D前端转换器、电压比较器等一系列产品。这些产品不仅满足了不同行业的需求,还进一步提升了ALD在电子行业的市场地位。同时,公司还针对特定应用,如医疗仪器和汽车领域,推出了定制化的解决方案,赢得了客户的广泛赞誉。

问答坊 | AI 解惑

路由信息协议(RIP)

一、背景   路由信息协议(RIP)是以跳数作为metric的距离向量协议。RIP广泛用于全球因特网的路由,是一种内部网关协议(interior gateway protocol),即在自治系统内部执行路由功能。外部网关路由协议(exterior gateway protocol),如边缘网关协议 ...…

查看全部问答>

新手问题

一个新手上来首先要熟悉网站的建构,否则好多东西使用不了。这不就像这个网站,我要熟悉熟悉了。呵呵呵…

查看全部问答>

【Labview 概念】波形图-DAQ

我们使用DAQ进行数据采集时,采集卡得到的数组,每列表示一个通道所采集到的数据,所以用波形图显示时请先用数组转置。…

查看全部问答>

Windows CE平台上开发采集板驱动程序.pdf

Windows CE平台上开发采集板驱动程序.pdf…

查看全部问答>

smflash.dll 在哪

请问smflash.dll 这个是哪个驱动生成的文件?为什么我的PB在2440下编译后找不到这个文件?…

查看全部问答>

什么是城管通

 城市管理现代化是建设现代化城市的重要组成部分。只有不断进行科技创新,才能为城市管理现代化插上腾飞的翅膀。“城管信息化系统”是振讯通信凭借在通信领域的多年经验,基于对通信系统、系统集成、通信终端和移动增值业务等方面的深刻理解,以及 ...…

查看全部问答>

完成的一个MC34063升压电路的设计,希望前辈给找找有否错误

MC34063的设计参数,暂定如下: 1 输入电压:10.8V~12.6V 2 输出电压27V 3 最大输出电流100mA. 4 外部开关管选TIP41C,饱和压降1.5V。 5 开关频率暂定典型值33K; 6 肖特基选用IN5819 40V,1A,正向压降 计算得到一些元件值: 1 Ton/Tff=1.8 ...…

查看全部问答>

谈谈软硬件的思维方式

很早就想写这篇文章了,但都不知如何入手,今天在华禹工控的群内讨论了一下,再把他写下来,就比较容易了。 先谈硬件思维,以我为代表。 本人从小接触电子,主要家里一堆电子垃圾天天有得玩,再加上我爸买了一本电工学,没事干就看书,第一章就是 ...…

查看全部问答>

大家帮帮忙,2812的调理模块怎样设计?

大家帮帮忙,2812的调理模块怎样设计? 我现在正在做2812的板子,现在遇到了问题,请各位大虾帮帮忙啊。。。。   放大和调理模块将信号放大并过滤掉噪声, 然后将模拟信号的电压幅值调整到F2812DSP芯片允许的范围之内(0-3V),然后 ...…

查看全部问答>