微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 不增加成本的32位移植设计

不增加成本的32位移植设计

时间:11-05 来源:3721RD 点击:

理器的汇编语言代码是不可移植的。如果你在当前设计中有任何的汇编代码,考虑在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工具。

图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可以执行一条指令的同时抓取和解码后续指令。

图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所示。

图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。

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

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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top