【分享】K60(Cortex-M4)开源开发探索——转载

2020-02-21 21:13发布

本帖最后由 cn_x 于 2014-8-28 23:07 编辑

一、Cortex-M4内核
简介
                        ARM Cortex-M4 处理器是由 ARM 专门开发的最新嵌入式处理器,用以满足需要有效且易于使用的控制和信号处理功能混合的数字信号控制市场。
         高效的信号处理功能与 Cortex-M 处理器系列的低功耗、低成本和易于使用的优点的组合,旨在满足专门面向电动机控制、汽车、电源管理、嵌入式音频和工业自动化市场的新兴类别的灵活解决方案。               Cortex‐M4是一个32位处理器内核。内部的数据路径是32位的,寄存器是32位的,存储器接口也是32位的。CM4 采用了哈佛结构,拥有独立的指令总线和数据总线,可以让取指与数据访问并行不悖。这样一来数据访问不再占用指令总线,从而提升了性能。为实现这个特性, CM3内部含有好几条总线接口,每条都为自己的应用场合优化过,并且它们可以并行工作。但是另一方面,指令总线和数据总线共享同一个存储器空间(一个统一的存储器系统)。换句话说,不是因为有两条总线,可寻址空间就变成8GB 了。
        比较复杂的应用可能需要更多的存储系统功能,为此CM4提供一个可选的MPU,而且在需要的情况下也可以使用外部的cache 。另外在CM4中,Both小端模式和大端模式都是支持的。
        CM4内部还附赠了好多调试组件,用于在硬件水平上支持调试操作,如指令断点,数据观察点等。另外,为支持更高级的调试,还有其它可选组件,包括指令跟踪和多种类型的调试接口。
        复位状态后,CM4的第一件事就是读取下列两个 32位整数的值:
       (1)从地址0x0000,0000处取出 MSP 的初始值。
       (2)从地址0x0000,0004处取出 PC的初始值——这个值是复位向量,LSB 必须是1 。
        然后从这个值所对应的地址处取指。
                 注意,这与传统的ARM 架构不同——其实也和绝大多数的其它单片机不同。传统的RM 架构总是从 0 地址开始执行第一条指令。它们的 0 地址处总是一条跳转指令。在 CM3中,0 地址处提供 MSP 的初始值,然后就是向量表(向量表在以后还可以被移至其它位置)。
        向量表中的数值是32位的地址,而不是跳转指令。向量表的第一个条目指向复位后应执行的第一条指令。
        参考文献:《Cortex-M3权威指南》
二、K60简介   
        Kinetis是基于ARM Cortex-M4具有超强可扩展性的低功耗、混合信号微控制器。第一阶段产品由五个微控制器系列组成,包含超过两百种器件,在引脚、外设和软件上可兼容。每个系列提供了不同的性能,存储器和外设特性。通过通用外设、存储器映射和封装的一致性来实现系列内和各系列间的便捷移植。
       Kinetis 微控制器基于飞思卡尔创新的90纳米薄膜存储器(TFS)闪存技术,具有独特的Flex存储器(可配置的内嵌EEPROM)。Kinetis微控制器系列融合了最新的低功耗革新技术,具有高性能、高精度的混合信号能力,宽广的互连性,人机接口和安全外设。飞思卡尔公司以及其他大量的ARM第三方应用商提供对Kinetis 微控制器的应用支持。

        
转自古-月http://blog.csdn.net/hcx25909






友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
21条回答
cn_x
2020-02-22 07:22
本帖最后由 cn_x 于 2014-8-28 23:06 编辑

K60(Cortex-M4)开源开发探索(四)—— 交叉编译环境设计

一、开源开发简介      
         windows作为现在桌面系统的主流,在开源开发领域中却存在配置困难、软件支持少等缺点,而本身就是开源系统的linux在这一领域就显示了强大的性能。近几年来,开源软件依靠灵活的特性,已经主宰了嵌入式软件开发,成为了当今嵌入式市场竞争的主要推动因素。为了适应发展,具有更好的可扩展性,我也选用linux作为研究平台。基于linux 的操作系统有很多,现在应用比较广泛的应该是ubuntu,我使用的版本是ubuntu12.04。


二、交叉编译环境结构      

        在Linux下进行嵌入式开发已经非常成熟,网上的资料非常多,一般都是使用gcc+eclipse的结构。结合移动机器人的应用,我设计的交叉编译环境的总体结构如下:


        (1)核心:arm交叉编译工具链。
         嵌入式产品的资源往往十分有限,一般采用Host/Target的模式进行开发,既在PC上开发,然后在嵌入式系统中运行的方式。所以在PC上编译出ARM架构可执行文件的交叉编译器就是十分重要了。交叉编译器主要完成的工作如下:


          (2)人机交互:Eclipse


          Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。Eclipse的插件功能十分强大,可以把我们使用到的所有软件工具结合在GUI界面下。CodeWarrior也是基于Eclipse设计的。
          (3)守护进程:OpenOCD


          openocd是一个开源的JTAG上位机,可以将gdb命令转换成jtag使用的电平信号,并且实时监控连接状态。openocd也可以独立访问硬件设备,所以可以在烧写程序之前,通过openocd初始化好硬件。详细资料可以参见官网:http://openocd.sourceforge.net/
           (4)调试器:OpenJTAG
           与BDM和jtag相比,openjtag可以实现前者的所有功能,并且可以多系统通用。而且在官网上(http://www.openjtag.org/)可以下载到PCB等技术资料。


转自古-月
http://blog.csdn.net/hcx25909



一周热门 更多>