- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Hercules产品架构采用已经考证的ARMCortex?-R4FCPU,此CPU使用紧密
耦合存储器配置。此Cortex-R4fCPU由一个锁步配置内的检测器Cortex-R4FCPU实现。这一配置在提供正确CPU运行逐周期检查的同时保持一个简单、易用的方法来使用单核程序设计者模型。三级64位紧密耦合存储器(TCM)接口实现对主CPU存储器的接见。
目标应用:
HerculesMCU系列针对通用安全应用。在观点阶段,对多重安全应用进行过剖析。目标应用示例包括:
车辆刹车系统,包括轮胎防锁死系统(ABS)、带有牵引控制的轮胎防锁死系统(ABS+TC)、和电子稳定性控制系统(ESC)
电机控制系统,特别是电子助力转向(EPS)系统和电动汽车(EV)
动力传动系统
通用安全计算,比如主动安全系统中的集成传感器集群办理和车
辆策略生成
工业自动化,比如用于安全流程控制的可编程逻辑控制器(PLC)和可编程自动化控制器(PAC)
接下来给大家介绍个人认为
TI
做的最牛
B的一款软件:HALCodeGenerator
,
也就硬件驱动库代码自动生成的软件,特别人性化的一款软件。现在好多芯片生产厂家为了降低
开发难度,都提供了驱动库,比方SST、NXP等。这些驱动库都是直接以源码形式提供。虽然使
用上比直接使用存放器的难度要低好多,可是仍旧不够直观,并且为了综合各方面的考虑,驱动
库函数会设计的比较复杂。
我个人认为在使用某个芯片的模块时,难度最大的部分在于怎样对该模块进行初始化配置
TI很牛,直接将硬件整个TMS570的硬件框图给做成了界面,并且细化到各个模块的内部构造上。
这样用户就不需要去查手册认识有哪些存放器,存放器的各个位含义是什么。经过界面就能很容
易的进行配置,并且认识相应的配置怎样影响模块的工作流程。
。
下列图是
TMS570芯片内部内核和外设的构造框图。
点击相应的模块,即可进入该模块的配置
页面。
比方我们要配置GPIOA端口,看下面的构造框图和弹出的配置提示,很容易知道DIR、PDR、PSL
各个位代表什么含义,配置后端口的工作流程是怎么的。
此外这款软件还支持FreeRTOS,FreeRTOS的配置选项也以图形化的界面体现出来。
在配置达成后,软件自动生成驱动库的源码、启动文件、链接脚本。然后将能够将这些代
码加入到Keil、CCS环境中使用。
下面是生成的
I2C
驱动文件
I2C.c
的源码。如果拿这段代码和
STM32驱动库对应源码进行
比较,
TI
的驱动库是直接根据界面上的配置生成相应的初始化配置数值,而
STM32的则要求传
入一个包含初始化参数的构造体,
然后根据构造体中的参数进行初始化。
不论是在效率仍是简短
度上,
TI
的驱动库都是更为优异的
。
/@fnvoidI2CInit(void)*@briefInitializestheI2CDriverThis
functioninitializestheI2Cmodule.*/
voidi2cInit(void)
{
/@bintialize@bI2C1*/
/-I2Coutofreset*/i2cREG1-MDR=(15);
/*I2Creset*/
/-SetI2Cmode*/
i2cREG1-MDR=/*nackmode*/
(015)
/*freerunning*/
|(014)
/*startcondtion-mastermodeonly*/|
(I2C_START_COND)
/*stopcondtion*/|(I2C_STOP_COND)
/*Master/Slavemode*/|(1)
/*Transmitter/receiver*/|(I2C_TRANSMITTER)
/*xpandedaddress*/|(I2C_7BIT_AMODE)
/*repeatmode*/|(07)
/*digitalloopback*/|(06)
/*startbyte-masteronly*/|(04)
/*freedataformat*/|(0)
/*bitcount*/|(0x0003);
/-SetI2Cextendedmode*/
i2cREG1-EMDR=(025);
/-Disableallinterrupts*/
i2cREG1-IMR=0x7FU;
/-setprescale*/
i2cREG1-PSC=9;
/-setclockrate*/
i2cREG1-CLKH=0x1E;
i2cREG1-CLKL=0x1E;
/-seti2cpinsfunctionalmode*/
i2cREG1-FUN=(0);
/-seti2cpinsdefault
文档评论(0)