2016-11-13 6 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のすべてがエラーである、なぜ?私はすでにあなたはおそらくなかった

+0

もし私があなたのtivaマイクロコントローラに誤っていないのであれば、その中にはすでにいくつかの機能があります。その後、それらはメモリのある部分に格納されます。私が間違っていない場合は、記憶されている場所を示すテキサスインストゥルメントが提供するファイルがなければなりません。あなたのプログラムがあなたに正しいファイルを含んでいない可能性がある場合は、 – morcillo

+1

"既にrom.hとrom_map.hをインクルードしています"と記述するのではなく、そのコードを投稿してください。 – chux

答えて

0

私は "DRIVERLIB/gpio.h" を使用してreccommendなり、 "DRIVERLIB/sysctl.h" が含まれますターゲットデバイスを定義しました。 -DTARGET_IS_TM4C123_RB1のようなものをMakefileに追加してみてください。 この定義は、ROM_ *シンボルを定義するために必要です。

0

TM4Cデバイスとピン配置のためのrom.hとrom_map.h

0

ドライバライブラリ(ティアウェア)とダイレクトレジスタの変更(DRM)の組み合わせを使用しています。どちらか一方、好ましくはdriverlibを使用してください。

実際にROM_の代わりにMAP_呼び出しを使用する必要があります。 ROM_は推奨されていませんが、引き続きテストに使用できます。プロダクションコードにROM_を入れないでください。私は例がまだROM_を使用していることを知っています。

とにかくROMのヘッダーファイルがありません。 ROM_を使用する場合は、driverlib/rom.hをインクルードする必要があります。そのため、暗黙の関数呼び出しについて不平を言っているのです。 ROM_somethingsomethingdarkside()への呼び出しはすべて定義されていません。また、stdintとstdboolをインクルードする必要があります。これは、driverlibがこれらのc99タイプを使用するためです。マップ呼び出しを使用するには、driverlib/rom_map.hを含める必要があります。

また、driverlib/gpio.h、driverlib/sysctrl.hを含める必要があります。それについては分かりません。私はあなたのやり方のようなものを混ぜ合わせたことはありません。まず、driverlibでコンパイルされたものを使用してデバッグしてから、動作していることを知った後、driverlibの前にMAP_を付けます。コンパイル済みのdriverlibライブラリ用のインクルードを削除したことはありません。ツールチェーンは、私がそれらをとにかく呼び出すのをやめた後、それらをコンパイルしないほどスマートに思えます。今私はちょっとそれを試してみたいです。

明らかに、ROM_またはMAP_はオンチップROMからdriverlib呼び出しを呼び出しています。

私はあなたが実際に使っているコードが何であるか、そしてDRMとdriverlibライブラリをどのようにして混ざっているのかは分かりません。 Tiva Cのオンラインワークショップに参加する時間を取ることを強くお勧めします。これは、このすべてをクリアする一連の短いビデオとラボです。私は意図的に神経的に遅くなってしまい、週末を過ごしました。あなたは1日でそれをすることができ、それはよく使われた1日になります。何度もあなたを救うでしょう。コードコンポーザーが出るまでは少し古くなっていますが、まだ使用可能です。私は、このプラットフォームで作業を始める前に、すべての学生がそれを通過するようにしています。

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

編集:ビトーが指摘はい、として、あなたもそれは同様に定義する必要があります。

関連する問題