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:TM4C1294XL 的 USB_HOST_msc 演示

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/618110/tm4c1294ncpdt-usb_host_msc-demo-for-tm4c1294xl

器件型号:TM4C1294NCPDT

您好!

我一直在尝试了解用于与记忆棒连接的示例代码。 我一直在查看 USB_host_msc 示例。 有些事情让我感到困惑、我希望有人能澄清这一点。 我使用 Keil 打开了该项目。  在启动文件中 、声明了两个中断。 我一直在到处搜索、找不到中断服务例程。 我一直在尝试了解这些中断在本应用中的用途。 SysTick 中断在 main 中启用。 作为一个实验、我对这个进行了注释、程序仍然正常运行。 请大家澄清一下、这两个中断是否用于这个示例、如果是、我在哪里可以找到 ISR、或者这些中断的用途是什么。 另外、请。 如果我错了、请纠正我的问题、但代码似乎依赖于 轮询来检测是否存在该记忆棒? 还是被触发的中断?  

非常感谢。

AJ

       extern SysTickIntHandler
       外部 USB0OTGModeIntHandler

;********

;矢量表。

;********
       导出 __Vectors
_矢量
       DCD    StackMem + Stack           ;栈顶
       DCD    Reset_Handler              ;Reset Handler
       DCD    NmiSR                      ;NMI 处理程序
       DCD    FaultISR                   ;硬故障处理程序
       DCD    IntDefaultHandler          ;MPU 故障处理程序
       DCD    IntDefaultHandler          ;总线故障处理程序
       DCD    IntDefaultHandler          ;用法故障处理程序
       DCD    0                          ;保留
       DCD    0                          ;保留
       DCD    0                          ;保留
       DCD    0                          ;保留
       DCD    IntDefaultHandler          ;SVCall 处理程序
       DCD    IntDefaultHandler          ;调试监视器处理程序
       DCD    0                          ;保留
       DCD    IntDefaultHandler          ;PendSV 处理程序
       DCD    SysTickIntHandler          ;SysTick 处理程序
       DCD    IntDefaultHandler          ;GPIO 端口 A
       DCD    IntDefaultHandler          ;GPIO 端口 B
       DCD    IntDefaultHandler          ;GPIO 端口 C
       DCD    IntDefaultHandler          ;GPIO 端口 D
       DCD    IntDefaultHandler          ;GPIO 端口 E
       DCD    IntDefaultHandler          ;UART0 Rx 和 Tx
       DCD    IntDefaultHandler          ;UART1 Rx 和 Tx
       DCD    IntDefaultHandler          ;SSI0 Rx 和 Tx
       DCD    IntDefaultHandler          ;I2C0主设备和从设备
       DCD    IntDefaultHandler          ;PWM 故障
       DCD    IntDefaultHandler          ;PWM 发生器0
       DCD    IntDefaultHandler          ;PWM 发生器1.
       DCD    IntDefaultHandler          ;PWM 发生器2.
       DCD    IntDefaultHandler          ;正交编码器0
       DCD    IntDefaultHandler          ;ADC 序列0
       DCD    IntDefaultHandler          ;ADC 序列1.
       DCD    IntDefaultHandler          ;ADC 序列2.
       DCD    IntDefaultHandler          ;ADC 序列3.
       DCD    IntDefaultHandler          ;看门狗计时器
       DCD    IntDefaultHandler          ;Timer 0子计时器 A
       DCD    IntDefaultHandler          ;Timer 0子计时器 B
       DCD    IntDefaultHandler          ;计时器1子计时器 A
       DCD    IntDefaultHandler          ;Timer 1子计时器 B
       DCD    IntDefaultHandler          ;计时器2子计时器 A
       DCD    IntDefaultHandler          ;Timer 2子计时器 B
       DCD    IntDefaultHandler          ;模拟比较器0
       DCD    IntDefaultHandler          ;模拟比较器1.
       DCD    IntDefaultHandler          ;模拟比较器2.
       DCD    IntDefaultHandler          ;系统控制(PLL、OSC、BO)
       DCD    IntDefaultHandler          ;闪存控制
       DCD    IntDefaultHandler          ;GPIO 端口 F
       DCD    IntDefaultHandler          ;GPIO 端口 G
       DCD    IntDefaultHandler          ;GPIO 端口 H
       DCD    IntDefaultHandler          ;UART2 Rx 和 Tx
       DCD    IntDefaultHandler          ;SSI1 Rx 和 Tx
       DCD    IntDefaultHandler          ;Timer 3子计时器 A
       DCD    IntDefaultHandler          ;Timer 3子计时器 B
       DCD    IntDefaultHandler          ;I2C1主站和从站
       DCD    IntDefaultHandler          ;CAN0
       DCD    IntDefaultHandler          ;CAN1
       DCD    IntDefaultHandler          ;以太网
       DCD    IntDefaultHandler          ;Hibernate
       DCD    USB0OTGModeIntHandler      ;USB0
       DCD    IntDefaultHandler          ;PWM 发生器3.
       DCD    IntDefaultHandler          ;UDMA 软件传输
       DCD    IntDefaultHandler          ;UDMA 错误
       DCD    IntDefaultHandler          ;ADC1序列0
       DCD    IntDefaultHandler          ;ADC1序列1.
       DCD    IntDefaultHandler          ;ADC1序列2.
       DCD    IntDefaultHandler          ;ADC1序列3.
       DCD    IntDefaultHandler          ;外部总线接口0
       DCD    IntDefaultHandler          ;GPIO 端口 J
       DCD    IntDefaultHandler          ;GPIO 端口 K
       DCD    IntDefaultHandler          ;GPIO 端口 L
       DCD    IntDefaultHandler          ;SSI2 Rx 和 Tx
       DCD    IntDefaultHandler          ;SSI3 Rx 和 Tx
       DCD    IntDefaultHandler          ;UART3 Rx 和 Tx
       DCD    IntDefaultHandler          ;UART4 Rx 和 Tx

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

    我终于找到了 SysTick 处理程序。 我在执行"查找所有文件"时必须错过它。 总之、我注意到它计算了 ms 节拍数、这个值是 USBOTGMain 函数的输入。 我的另一个问题是、为什么需要定期调用此函数? 以及用户指南中所述的含义

    "当在 OTG 模式下使用库时、此函数是 USB 控制器的主例程。
    主应用程序必须在回调上下文之外定期调用此例程。
    ui32MsTicks 值用于 USB 库在中运行时所需的基本计时
    OTG 模式。 这使得一个简单的协同系统能够访问 OTG 控制器驱动程序
    而无需 RTOS。 所有时间关键操作在中断中处理
    上下文、但所有更长的操作都从该函数运行、以允许它们阻止和等待
    完成、而不会中断其他中断。"

    我从未使用过涉及 OTG 的应用程序、因此这对我来说都是全新的。

    谢谢

    AJ
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    通常、中断服务例程应保持非常短的时间。 如果需要进行大量计算、并且计算时间不是很关键、则中断例程只会设置一个必须完成某些工作的标志。 然后在某些主循环中、定期检查该标志、如果设置了该标志、则完成必要的工作。 如果在这里完成、情况就会如此。 函数 USBOTGMain 正在检查超时或状态变化。