2016-11-13 2 views
0

TM4c123으로 간단한 로직 분석기를 만들려고하지만 언제든지 함수 ROM _ _을 사용할 때 오류가 발생합니다 (함수 ROM_ .. 암시 적 임). 예를 들어tiva c 암시 적 함수

:

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을 포함

+0

tiva 마이크로 컨트롤러에 이미 일부 기능이 있습니다. 그런 다음 메모리의 일부에 저장됩니다. 내가 틀렸다고 생각하지 않는다면, 메모리에 어디에 저장되어 있는지를 나타내는 bytexas 악기가 제공되는 파일이 있어야합니다. 만약 당신의 프로그램이 아마도 당신이 올바른 파일을 포함하고 있지 않다는 에러를 주었다면 – morcillo

+1

"이미 rom.h와 rom_map.h를 포함하고있다"라고 기술하는 대신 그것을하는 코드를 게시하십시오. – chux

답변

0
내가 TM4C 디바이스와 핀 구성에 대해 "DRIVERLIB/gpio.h"와 "DRIVERLIB/sysctl.h" 를 사용 reccommend 것

0

당신은 아마하지 않았다 타겟 장치를 정의했습니다. -DTARGET_IS_TM4C123_RB1과 같은 것을 Makefile에 추가하십시오. 이 정의는 ROM_ * 기호를 정의하는 데 필요합니다.

0

드라이버 라이 브 (tivaware)와 직접 등록 수정 (DRM)을 함께 사용하고 있습니다. 하나 또는 다른 하나, 가급적이면 driverlib을 사용하십시오.

실제로 ROM_ 대신 MAP_ 호출을 사용해야합니다. ROM_은 더 이상 사용되지 않지만 여전히 테스트에 사용 가능합니다. 프로덕션 코드에 ROM_을 넣지 마십시오. 나는 예제가 여전히 ROM_을 사용한다는 것을 알고있다.

어쨌든 ROM의 헤더 파일이 누락되었습니다. ROM_을 사용하려면 driverlib/rom.h를 포함시켜야합니다. 그래서 암시 적 함수 호출에 대해 불평하는 것입니다. ROM_somethingsomethingdarkside()에 대한 호출은 정의되어 있지 않습니다. driverlib는 해당 c99 유형을 사용하므로 stdint 및 stdbool도 포함시켜야합니다. 지도 호출을 사용하려면 driverlib/rom_map.h를 포함해야합니다.

driverlib/gpio.h, driverlib/sysctrl.h를 포함해야 할 수도 있습니다. 확실하지 않습니다. 필자는 필자가 해본 적이없는 것들을 결코 혼합하지 않았으며, 항상 driverlib에서 컴파일 된 것을 사용하여 디버깅을하고, 그 다음에 일이 작동한다는 것을 알고 난 후에 MAP_로 driverlib 호출을 접두사로 사용합니다. 필자는 driverlib 라이브러리에서 컴파일 된 패키지를 제거하기 위해 돌아 가지 않았습니다. 툴체인은 어쨌든 전화를 끊은 후에 컴파일하지 못하는만큼 똑똑한 것 같습니다. 이제 나는 그것을 시도하고 싶습니다.

분명히하기 위해 ROM_ 또는 MAP_은 칩 ROM에서 driverlib 호출을 호출합니다.

당신이 정말로 사용하고있는 코드가 무엇인지, 그리고 DRM과 driverlib 라이브러리를 혼합하는 방식으로 어떤 코드가 사용되는지 모르겠습니다. Tiva C 온라인 워크샵을 통해 시간을 할애 할 것을 강력히 제안합니다.이 모든 것을 정리할 일련의 짧은 비디오 및 실험실입니다. 나는 의도적으로 신경 학적으로 느려졌고 주말을 보냈다. 당신은 하루에 그것을 할 수 있고, 잘 보낸 하루가 될 것입니다. 그것은 여러 번 당신을 구할 것입니다. 코드 작성자가 간다면 오래되었지만 여전히 유용합니다. 나는이 플랫폼에서 일하기 전에 모든 학생들이 그것을 통과하도록했습니다.

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

편집 : 비터 지적 예, 그리고, 당신은 또한뿐만 아니라 정의해야합니다.