Hallo,
Gibt es hier jemanden, der Erfahrung mit dem LPC29XX von NXP hat und
unter Linux programmiert?
Ich hab den Chip noch nicht und würde ihn eventuell gerne auf meiner
Platine einsetzen.
Aktuell habe ich den armel-gcc Compiler installiert und die
Beispieldateien von NXP modifiziert (Groß-/Kleinschreibung der includes,
#define NOP asm volatile("nop")).
Das einzige was aktuell nicht geht, ist das __irq makro.
Ich habe versucht es wie unten steht versucht zu definieren
1 | #define __irq void __attribute__ ((interrupt("IRQ")))
|
2 |
|
3 | //...
|
4 |
|
5 | //Die Funktionen die __irq benötigen:
|
6 |
|
7 | void __irq IRQ_Exception( void )
|
8 | {
|
9 | DWORD regVal, index;
|
10 | HandlerAddr irqHandler;
|
11 |
|
12 | regVal = INT_VECTOR_1;
|
13 | index = regVal >> 3;
|
14 | if ( index == 0 )
|
15 | {
|
16 | /* no-interrupt handler for IRQ */
|
17 | return;
|
18 | }
|
19 | irqHandler = IRQ_VectorTable[index].Isr;
|
20 | (*irqHandler)();
|
21 | return;
|
22 | }
|
23 |
|
24 | /******************************************************************************
|
25 | ** Function name: FIQ_Exception
|
26 | **
|
27 | ** Descriptions: Interrupt Handler
|
28 | ** parameters: None
|
29 | ** Returned value: None
|
30 | **
|
31 | ******************************************************************************/
|
32 | void __irq FIQ_Exception( void )
|
33 | {
|
34 | DWORD regVal, index;
|
35 | HandlerAddr fiqHandler;
|
36 |
|
37 | regVal = INT_VECTOR_0;
|
38 | index = regVal >> 3;
|
39 | if ( index == 0 )
|
40 | {
|
41 | /* no-interrupt handler for FIQ. */
|
42 | return;
|
43 | }
|
44 | fiqHandler = FIQ_VectorTable[index].Isr;
|
45 | (*fiqHandler)();
|
46 | }
|
Funktioniert aber leider nicht.
(error: two or more data types in declaration specifiers)
Zum Test habe ich den hinteren Teil auskommentiert:
Bin ich da auf dem richtigen weg? Würde das, sofern ich den Chip hätte,
funktionieren (mal vom Interrupt abgesehen)?
Die Binary wird nun erzeugt.
(Der Code ist aus: AN10899 complete package 20100113)
http://www.nxp.com/documents/application_note/AN10899_complete_package_20100113.zip