Hercules产品架构采用已经验证的ARMCortex-RCPU,此5.docxVIP

Hercules产品架构采用已经验证的ARMCortex-RCPU,此5.docx

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Hercules产品架构采用已经验证的ARMCortex-RCPU,此5

Hercules产品架构采用已经验证的 ARMCortex?-R4F CPU,此 CPU使用紧密耦合存储器配置。 此Cortex-R4fCPU 由一个锁步配置内的检测器 Cortex-R4FCPU 实现。 这一配置在提供正确 CPU运行逐周期检查的同时保持一个简单、易用的方法来使用单核程序设计者模型。三级 64 位紧密耦合存储器(TCM)接口实现对主CPU 存储器的访问。目标应用:? ?? ? HerculesMCU 系列针对通用安全应用。 在概念阶段,对多重安全应用进行过分析。目标应用示例包括:? ?? ? ? 车辆刹车系统,包括轮胎防锁死系统(ABS)、带有牵引控制的轮胎防锁死系统(ABS+TC)、和电子稳定性控制系统(ESC)? ?? ? ? 电机控制系统,特别是电子助力转向(EPS) 系统和电动汽车(EV) 动力传动系统? ?? ? ? 通用安全计算,例如主动安全系统中的集成传感器集群处理和车辆策略生成? ?? ? ? 工业自动化,例如用于安全流程控制的可编程逻辑控制器(PLC) 和可编程自动化控制器(PAC)接下来给大家介绍个人认为TI做的最牛B的一款软件:HAL Code Generator,也就硬件驱动库代码自动生成的软件,非常人性化的一款软件。现在很多芯片生产厂家为了降低开发难度,都提供了驱动库,比如SST、NXP等。这些驱动库都是直接以源码形式提供。虽然使用上比直接使用寄存器的难度要低很多,但是仍然不够直观,并且为了综合各方面的考虑,驱动库函数会设计的比较复杂。我个人认为在使用某个芯片的模块时,难度最大的部分在于如何对该模块进行初始化配置。TI很牛,直接将硬件整个TMS570的硬件框图给做成了界面,并且细化到各个模块的内部结构上。这样用户就不需要去查手册了解有哪些寄存器,寄存器的各个位含义是什么。通过界面就能很容易的进行配置,并且了解相应的配置如何影响模块的工作流程。下图是TMS570芯片内部内核和外设的结构框图。点击相应的模块,即可进入该模块的配置页面。比如我们要配置GPIO A端口,看下面的结构框图和弹出的配置提示,很容易知道DIR、PDR、PSL各个位代表什么含义,配置后端口的工作流程是怎么的。另外这款软件还支持FreeRTOS,FreeRTOS的配置选项也以图形化的界面呈现出来。在配置完成后,软件自动生成驱动库的源码、启动文件、链接脚本。然后将可以将这些代码加入到Keil、CCS环境中使用。下面是生成的I2C驱动文件I2C.c的源码。如果拿这段代码和STM32驱动库对应源码进行比较,TI的驱动库是直接根据界面上的配置生成相应的初始化配置数值,而STM32的则要求传入一个包含初始化参数的结构体,然后根据结构体中的参数进行初始化。无论是在效率还是简洁度上,TI的驱动库都是更加优秀的。/** @fn void I2CInit(void) * @brief Initializes the I2C Driver * * This function initializes the I2C module. */void i2cInit(void){/** @b intialize @b I2C1 *//** - I2C out of reset */ i2cREG1-MDR = (1 5); /* I2C reset *//** - Set I2C mode */ i2cREG1-MDR = /* nack mode */ (0 15)/* free running */ | (0 14)/* start condtion - master mode only */ | (I2C_START_COND)/* stop condtion */ | (I2C_STOP_COND)/* Master/Slave mode */ | (1)/* Transmitter/receiver */ | (I2C_TRANSMITTER)/* xpanded address */ | (I2C_7BIT_AMODE)/* repeat mode */ | (0 7)/* digital loopback */ | (0 6)/* start byte - master only */ | (0 4)/* free data format */ | (0)/* bit count */ | (0x0003);/** - Set I2C extended mode */ i2cREG1-EMDR = (0 25);/** - Disable all interrupts */ i2cREG1-IMR = 0x7FU; /** - set prescale */ i2cREG1-

文档评论(0)

jixujianchi + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档