【分享】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 00:43
本帖最后由 cn_x 于 2014-8-28 23:04 编辑

K60(Cortex-M4)开源开发探索(二)—— 嵌入式软件开发需求分析
一、嵌入式软硬件开发现状          
        随着电子技术的不断发展,各类硬件的性能不断提升,而成本和使用难度却在不断下降。硬件的日益成熟和稳定,让嵌入式软件成为了,嵌入式开发中的关键问题。但是纵观现在的嵌入式开发现状,虽然占据了系统开发的大部分时间,可还是显得有点力不从心,很难满足用户的需求,主要表现在以下几个方面:


        (1)开发复杂:传感器、驱动器等硬件功能越来越多,用户的需求越来越复杂,造成软件规模不断增加,开发成本和复杂度提升。
        (2)移植困难:软件质量层次不齐,移植性差,很难在不同硬件设备之间移植,无法应付日益丰富的硬件市场。
        (3)缺少工具:使用商业化的软件开发工具有很多限制,商业化的调试器不适功能不够就是价格太贵。


二、软件开发需求      

         根据上面的软件开发现状,结合我主要研究的移动机器人领域,我总结了以下的软件开发需求:
         (1)代码复用性强,消除重复劳动;
          代码在编写的过程中要增强模块化,提高在不同硬件之间的可移植性。
         (2)软件耦合性小,便于分工合作;

           软件开发设计到的领域比较多,需要分工开发,所以需要降低软件的耦合性,否则联调会十分困难。
         (3)系统安全性高,人机交互友好;

           在代码编写的过程中需要注重错误处理,通过人机交互的方式实时跟踪系统状态,提高安全性。
         (4)开发工具合适,利用技术支持。

       寻找合适可靠的开发工具链,虽然针对K60飞思卡尔公司推出了CodeWarrior开发工具,但是使用免费版的限制重重,运行又龟速一样,而且必须要使用BDM,所以还是要寻找更好的开发工具。此外利用各种官方及第三方的库(比如CMSIS、官方驱动库),可以打大提高开发过程中的效率。
  
转自古-月
http://blog.csdn.net/hcx25909



一周热门 更多>