工具/软件:
您好:
我正在从矢量处理 microsar autosar 栈、并创建了一个初始项目来运行 GPIO。 我使用了其中一个 LED 闪烁示例作为 GPIO 初始化的参考。 代码片段如下所示:
最初从 ti_drivers_config.c 中调用 System_init ()
void System_init (void)
{
/* DPL init 设置地址传输单元、在某些 CPU 上需要这样做
*访问 SCICLIENT 服务,因此这需要首先发生
*/
dpl_init();
/*我们应该在启用外设的电源和时钟之前执行 sciclient init */
/* SCICLIENT INIT */
{
int32_t = SystemP_Success;
retVal = Sciclient_init (CSL_CORE_ID_MCU_R5FSS0_0);
DebugP_assertNoLog (SystemP_Success == RetVal);
}
PowerClock_init();
/*现在我们可以执行 pinmux */
Pinmux_init ();
/*最后我们初始化所有外设驱动程序*/
drivers_uartInit();
gpio_init ();
}
void gpio_init ()
{
uint32_t baseAddr;
/*实例0 */
/*翻译后获取地址*/
baseAddr =(uint32_t) AddrTranslateP_getLocalAddr (GPIO_LED_BASE_ADDR);
GPIO_pinWriteLow (baseAddr、GPIO_LED_PIN);
GPIO_setDirMode (baseAddr、GPIO_LED_PIN、GPIO_LED_DIR);
}
在此之后、为了打开 LED、我执行以下操作-
gpioBaseAddr =(uint32) AddrTranslateP_getLocalAddr (GPIO_LED_BASE_ADDR);
pinNum = GPIO_LED_PIN;
GPIO_setDirMode (gpioBaseAddr、pinNum、0);
GPIO_pinWriteHigh (gpioBaseAddr、pinNum);
这并不总是有效的、但令人惊讶的是、有时它是编译器/优化/链接器问题、还是我缺少某些编译器标志/项目设置?
在调试时、我看到 gpio.h 文件和变量窗口如下所示、即"the variable is not available"、这在 led 示例中是看不到的。 也可以单步执行、但断点不起作用-
这是因为缺少编译器/链接器设置吗? 或任何其他一般设置、因为 GPIO 模块等某些模块位于 MCU+SDK 中
谢谢、此致、
Nikhil