This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TM4C1294NCPDT:TivaWare 文档中的错误(明显)

Guru**** 1860360 points
Other Parts Discussed in Thread: EK-TM4C123GXL
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1378120/tm4c1294ncpdt-error-apparent-in-the-tivaware-docs

器件型号:TM4C1294NCPDT
Thread 中讨论的其他器件:EK-TM4C123GXL

工具与软件:

今天、我为 TM4C123GXL LaunchPad 下载了当前的 Tivaware。  我最终花费了大量的时间来尝试配置 bool 类型、以便我可以包括"全局"中断启用/禁用 Fn 调用。  这是 DRL-UG 手册的节选(此文本在 interrupt.c 源代码注释中也或多或少存在):

IntMasterDisable
禁用处理器中断。
原型:
Bool
IntMasterDisable (空)
说明:
此函数可防止处理器接收中断。 此函数不会影响
中断控制器中使能的中断组;它只从门控单个中断
连接到处理器。
注意:
以前、该函数没有返回值。 因此、可以列入 interrupt.h
并在不包含 hw_types.h 的情况下调用该函数 现在、返回的是 bool、A
在这种情况下、会发生编译器错误。 解决方案是先包含 hw_types.h、然后再包含
interrupt.h
返回值:
如果在调用函数时已禁用中断、则返回 true;如果已禁用中断、则返回 false
最初启用的。

问题:hw_types.h 文件中没有任何 typedef、肯定不是"bool"的定义。  我最终在这里放置了一个。  我在 RTOS 段中发现某个版本的 hw_types 对于 BOOL (大写)具有 typedef、但将该语法复制到我的工作包含文件时该语法不起作用(也许是 C++或 C#语法? ...我只是一个傻瓜,不是非常了解这些事情)。

一个小问题,通过大多数措施,但它仍然占用了我几个小时的时间,我的解决方案更多(而不是更少)一个黑客,而不是一个适当的解决方案。

Thatisall.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

     您能否导入并运行库存 TivaWare 示例 C:\ti\TivaWare_C_Series-2.2.0.295\examples\boards\ek-tm4c123gxl\interrupts? 请参考包含 hw_types.h 和 调用 IntMasterDisable()的头文件。 编译项目没有问题。 请尝试一下。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    一个公平的要求、但是... 这一问题已被这里的事件所克服。  当我尝试在我的桌面上进行编译时、我遇到了同步问题(那台计算机上的 TivaWare 要旧得多)、这些问题强调了这样一个想法、即如果只将 TivaWare 包含在一个系统功能中是不太高效的。  经过一些额外的研究、我找到了一个内联 ASM 解决方案:

    	// master interrupt disable
    	asm(
    		" CPSID I\n"
    		" ISB\n"
    		);
    			//
    			// ...interceding code...
    			//
    	//	master interrupt enable
    	asm(
    		" CPSIE I\n"
    		" ISB\n"
    		);

    这使得 TivaWare 被排除、并且似乎能提供所需的结果。

    至于最初的问题、我想当我决定更全面地使用 TivaWare 时、我可以很快解决这个问题。

    谢谢