首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >tiva c隐函数

tiva c隐函数
EN

Stack Overflow用户
提问于 2016-11-14 00:17:08
回答 3查看 588关注 0票数 0

我正在尝试用TM4c123构建一个简单的逻辑分析器,但是当我使用函数ROM_时……有人知道为什么吗?

例如:

代码语言:javascript
复制
ROM_FPUEnable();
ROM_FPULazyStackingEnable();

// run from crystal, 80 MHz
ROM_SysCtlClockSet(SYSCTL_SYSDIV_2_5 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN | SYSCTL_XTAL_16MHZ);

// enable peripherals
ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);
ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);

// set UART pins
GPIOPinConfigure(0x00000001);
GPIOPinConfigure(0x00000401);
ROM_GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1);

// init PORTB
ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);
GPIO_PORTB_DIR_R = 0x00;
GPIO_PORTB_DEN_R = 0xff;

// configure uart
ROM_UARTConfigSetExpClk(UART0_BASE, ROM_SysCtlClockGet(), 115200,
    (UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE | UART_CONFIG_PAR_NONE));

所有的函数ROM都是错误的,为什么?我已经包含了rom.h和rom_map.h

EN

回答 3

Stack Overflow用户

发布于 2017-07-22 20:33:49

您使用的是driverlib (tivaware)和直接寄存器修改(DRM)的组合。使用一个或另一个,最好是driverlib。

实际上,您应该使用MAP_调用,而不是ROM_。ROM_已弃用,但仍可用于测试。不要将ROM_放在生产代码中。我知道这些示例仍然使用ROM_。

不管怎样,你会丢失ROM的头文件。如果你想使用ROM_,你需要包含driverlib/rom.h。这就是为什么它会抱怨隐式函数调用。未定义对ROM_somethingsomethingdarkside()的任何调用。您还需要包含stdint和stdbool,因为driverlib使用这些c99类型。要使用map调用,您需要包含driverlib/rom_map.h

您可能还需要包含driverlib/gpio.h、driverlib/sysctrl.h。这一点我不确定。我从来没有像你做过的那样把事情混在一起,我总是先使用在驱动库中编译的代码进行调试,然后在我知道事情正常工作后,在驱动库调用前面加上MAP_。我从来没有回去删除我在driverlib库中编译过的包含内容。工具链似乎足够智能,在我停止调用它们之后不会编译它们。不过,现在我有点想试试了。

需要说明的是,ROM_或MAP_正在从芯片上的只读存储器中调用driverlib。

我怀疑你不确定你正在使用的代码是什么,以及它是做什么的,因为你混合了DRM和driverlib库。我强烈建议你花时间通过Tiva C的在线研讨会,这是一系列的短视频和实验室,将澄清所有这一切。我故意变得神经质缓慢,花了我一个周末。你可以在一天内完成,这将是值得的一天。它会帮你省很多倍。就code composer而言,它有点过时了,但它仍然可以使用。我让我所有的学生在开始在这个平台上工作之前都经历过它。

http://processors.wiki.ti.com/index.php/Getting_Started_with_the_TIVA™_C_Series_TM4C123G_LaunchPad

编辑:是的,正如vitor指出的,你也需要这个定义。

票数 1
EN

Stack Overflow用户

发布于 2017-01-10 02:01:32

我建议使用"driverlib/gpio.h“和"driverlib/sysctl.h”来配置TM4C设备的引脚

票数 0
EN

Stack Overflow用户

发布于 2017-07-11 01:43:22

你可能没有定义你的目标设备。尝试将类似-DTARGET_IS_TM4C123_RB1的内容添加到Makefile中。为了定义ROM_*符号,此定义是必需的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40575995

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档