Hi, I have tested my ARM7 stamp baord with some of the supplied test HEX files including UART test with Tera Term. All good.
My problem however is when I generate the hex files myself with Keil uv3. Do you have any idea what I possibly could have wrong ?
I am using the supplied source files, startup file, headers etc. When I compile I have 0 errors, 0 warnings and the hex file is produced.
I appreciate any help.
thanks
But i think that it will not working yet. Can you send another screen shot from linker tab?
you need a delay function to see the blinking
IOSET1 = 0x00010000; // Set GPIO1.16 Output Pin (OFF LED) // Loop Blink LED on GPIO1.16 // delay_function(); IOCLR1 = 0x00010000;
This is a screen shot of the options. Is there anything wrong for LPC2119?
[IMG]i58.tinypic.com/20ruuet.png[/IMG]
I corrected the while(1); issue because I had modified the original code and I forgot the infinite loop at the end. I still have nothing working.
Now I am just putting the Port Low but it is remaining @ 2.1V. How come. This is the code:
#include <LPC21xx.H> // LPC2119 MPU Register int main(void) { PINSEL2 &= 0xFFFFFFFC; // Makesure GPIO1.16 = GPIO Function IODIR1 = 0x00010000; // Set GPIO1.16 = Output IOSET1 = 0x00010000; // Set GPIO1.16 Output Pin (OFF LED) // Loop Blink LED on GPIO1.16 // IOCLR1 = 0x00010000; // Clear Output Pin P1.16 (ON LED) while(1); } This is a screen shot of the options. Is there anything wrong for LPC2119?
goto is an old technique for branching, long since lost in the sands of time.
It's good to know that C/C++ has no suitable looping construct for creating infinite loops, so a goto construct is needed.
did I forget to put a loop at the end of main to stop it ending?
can you compile it yourself?
int main(void) { // la de da coding stuff the_next_step: goto the_next_step; }
I tried with this..
#include <LPC21xx.H> // LPC2119 MPU Register /* pototype section */ int main(void) { PINSEL2 &= 0xFFFFFFFC; // Makesure GPIO1.16 = GPIO Function IODIR1 = 0x00010000; // Set GPIO1.16 = Output IOSET1 = 0x00010000; // Set GPIO1.16 Output Pin (OFF LED) IOCLR1 = 0x00010000; // Clear Output Pin P1.16 (ON LED) }
But the same thing. Port 1 remained high. Can you compile it and post the HEX contents so I can compare?
thanks a lot
I can make a smaller simple program first?
Obviously I cannot check if the delay is working because nothing is working on the stamp board.
Can I post the screenshots somewhere?
Have I checked the compiler switches? I need to check them. Will the delay function work? Will it always work? What can effect it? Is anybody listening?
Can you compile this code for an LPC2119 ?
/*****************************************************/ /* Examples Program For "ET-ARM STAMP LPC2119" Board */ /* Target MCU : Philips ARM7-LPC2119 */ /* : X-TAL : 19.6608 MHz */ /* : Run Speed 58.9824MHz (With PLL) */ /* Compiler : Keil ARM V2.32a */ /* Last Update : 1/September/2005 */ /* Function : Example Use GPIO-1 on Output Mode */ /* : LED Blink on GPIO1.16 */ /*****************************************************/
#include <LPC21xx.H> // LPC2119 MPU Register
/* pototype section */ void delay_led(unsigned long int); // Delay Time Function
int main(void) { PINSEL2 &= 0xFFFFFFFC; // Makesure GPIO1.16 = GPIO Function IODIR1 = 0x00010000; // Set GPIO1.16 = Output IOSET1 = 0x00010000; // Set GPIO1.16 Output Pin (OFF LED)
// Loop Blink LED on GPIO1.16 // while(1) // Loop Continue { IOCLR1 = 0x00010000; // Clear Output Pin P1.16 (ON LED) delay_led(1500000); // Display LED Delay IOSET1 = 0x00010000; // Set Output Pin P1.16 (OFF LED) delay_led(1500000); // Display LED Delay } }
/***********************/ /* Delay Time Function */ /* 1-4294967296 */ /***********************/ void delay_led(unsigned long int count1) { while(count1 > 0) {count1--;} // Loop Decrease Counter
I will compare it with what I get from the project that works.
I will post the results.
Can you be more specific? Do I have to specify where I write the code? I dont remember doing this previously..
The Map file:
==============================================================================
Memory Map of the image
Image Entry point : 0x00000110
Load Region LR_IROM1 (Base: 0x00000000, Size: 0x00000330, Max: 0x00020000, ABSOLUTE)
Execution Region ER_IROM1 (Base: 0x00000000, Size: 0x00000330, Max: 0x00020000, ABSOLUTE)
Base Addr Size Type Attr Idx E Section Name Object
0x00000000 0x00000110 Code RO 3 RESET startup.o 0x00000110 0x00000008 Code RO 31 * !!!main c_t.l(__main.o) 0x00000118 0x0000003c Code RO 187 !!!scatter c_t.l(__scatter.o) 0x00000154 0x0000002c Code RO 189 !!handler_zi c_t.l(__scatter_zi.o) 0x00000180 0x00000008 Ven RO 58 .ARM.Collect$$libinit$$00000000 c_t.l(libinit.o) 0x00000188 0x00000002 Code RO 58 .ARM.Collect$$libinit$$00000000 c_t.l(libinit.o) 0x0000018a 0x00000000 Code RO 65 .ARM.Collect$$libinit$$00000002 c_t.l(libinit2.o) 0x0000018a 0x00000000 Code RO 68 .ARM.Collect$$libinit$$00000008 c_t.l(libinit2.o) 0x0000018a 0x00000000 Code RO 70 .ARM.Collect$$libinit$$0000000A c_t.l(libinit2.o) 0x0000018a 0x00000000 Code RO 72 .ARM.Collect$$libinit$$0000000C c_t.l(libinit2.o) 0x0000018a 0x00000000 Code RO 75 .ARM.Collect$$libinit$$0000000F c_t.l(libinit2.o) 0x0000018a 0x00000000 Code RO 77 .ARM.Collect$$libinit$$00000011 c_t.l(libinit2.o) 0x0000018a 0x00000000 Code RO 79 .ARM.Collect$$libinit$$00000013 c_t.l(libinit2.o) 0x0000018a 0x00000000 Code RO 81 .ARM.Collect$$libinit$$00000015 c_t.l(libinit2.o) 0x0000018a 0x00000000 Code RO 83 .ARM.Collect$$libinit$$00000017 c_t.l(libinit2.o) 0x0000018a 0x00000000 Code RO 85 .ARM.Collect$$libinit$$00000019 c_t.l(libinit2.o) 0x0000018a 0x00000000 Code RO 87 .ARM.Collect$$libinit$$0000001B c_t.l(libinit2.o) 0x0000018a 0x00000000 Code RO 89 .ARM.Collect$$libinit$$0000001D c_t.l(libinit2.o) 0x0000018a 0x00000000 Code RO 91 .ARM.Collect$$libinit$$0000001F c_t.l(libinit2.o) 0x0000018a 0x00000000 Code RO 93 .ARM.Collect$$libinit$$00000021 c_t.l(libinit2.o) 0x0000018a 0x00000000 Code RO 95 .ARM.Collect$$libinit$$00000023 c_t.l(libinit2.o) 0x0000018a 0x00000000 Code RO 99 .ARM.Collect$$libinit$$0000002A c_t.l(libinit2.o) 0x0000018a 0x00000000 Code RO 101 .ARM.Collect$$libinit$$0000002C c_t.l(libinit2.o) 0x0000018a 0x00000000 Code RO 103 .ARM.Collect$$libinit$$0000002E c_t.l(libinit2.o) 0x0000018a 0x00000000 Code RO 105 .ARM.Collect$$libinit$$00000030 c_t.l(libinit2.o) 0x0000018a 0x0000000c Code RO 106 .ARM.Collect$$libinit$$00000031 c_t.l(libinit2.o) 0x00000196 0x00000002 PAD 0x00000198 0x00000008 Ven RO 126 .ARM.Collect$$libshutdown$$00000000 c_t.l(libshutdown.o) 0x000001a0 0x00000004 Code RO 126 .ARM.Collect$$libshutdown$$00000000 c_t.l(libshutdown.o) 0x000001a4 0x00000000 Code RO 140 .ARM.Collect$$libshutdown$$00000003 c_t.l(libshutdown2.o) 0x000001a4 0x00000000 Code RO 143 .ARM.Collect$$libshutdown$$00000006 c_t.l(libshutdown2.o) 0x000001a4 0x00000000 Code RO 146 .ARM.Collect$$libshutdown$$00000009 c_t.l(libshutdown2.o) 0x000001a4 0x00000000 Code RO 148 .ARM.Collect$$libshutdown$$0000000B c_t.l(libshutdown2.o) 0x000001a4 0x00000000 Code RO 151 .ARM.Collect$$libshutdown$$0000000E c_t.l(libshutdown2.o) 0x000001a4 0x00000006 Code RO 152 .ARM.Collect$$libshutdown$$0000000F c_t.l(libshutdown2.o) 0x000001aa 0x00000002 PAD 0x000001ac 0x00000000 Code RO 33 .ARM.Collect$$rtentry$$00000000 c_t.l(rtentry.o) 0x000001ac 0x00000000 Code RO 35 .ARM.Collect$$rtentry$$00000002 c_t.l(rtentry2.o) 0x000001ac 0x00000008 Code RO 47 .ARM.Collect$$rtentry$$00000004 c_t.l(rtentry4.o) 0x000001b4 0x00000000 Code RO 37 .ARM.Collect$$rtentry$$00000009 c_t.l(rtentry2.o) 0x000001b4 0x00000004 Code RO 38 .ARM.Collect$$rtentry$$0000000A c_t.l(rtentry2.o) 0x000001b8 0x00000000 Code RO 40 .ARM.Collect$$rtentry$$0000000C c_t.l(rtentry2.o) 0x000001b8 0x00000028 Code RO 41 .ARM.Collect$$rtentry$$0000000D c_t.l(rtentry2.o) 0x000001e0 0x00000004 Ven RO 62 .ARM.Collect$$rtexit$$00000000 c_t.l(rtexit.o) 0x000001e4 0x00000004 Code RO 62 .ARM.Collect$$rtexit$$00000000 c_t.l(rtexit.o) 0x000001e8 0x00000000 Code RO 108 .ARM.Collect$$rtexit$$00000002 c_t.l(rtexit2.o) 0x000001e8 0x00000004 Code RO 109 .ARM.Collect$$rtexit$$00000003 c_t.l(rtexit2.o) 0x000001ec 0x00000008 Code RO 110 .ARM.Collect$$rtexit$$00000004 c_t.l(rtexit2.o) 0x000001f4 0x00000020 Code RO 4 .text startup.o 0x00000214 0x00000074 Code RO 11 .text main.o 0x00000288 0x00000006 Code RO 29 .text c_t.l(heapauxi.o) 0x0000028e 0x00000002 PAD 0x00000290 0x00000060 Code RO 49 .text c_t.l(sys_stackheap_outer.o) 0x000002f0 0x0000000c Code RO 51 .text c_t.l(exit.o) 0x000002fc 0x0000000c Code RO 59 .text c_t.l(libspace.o) 0x00000308 0x00000008 Ven RO 118 .text c_t.l(sys_exit.o) 0x00000310 0x0000000c Code RO 118 .text c_t.l(sys_exit.o) 0x0000031c 0x00000004 Code RO 129 .text c_t.l(use_no_semi.o) 0x00000320 0x00000000 Code RO 131 .text c_t.l(indicate_semi.o) 0x00000320 0x00000010 Data RO 185 Region$$Table anon$$obj.o
Execution Region RW_IRAM1 (Base: 0x40000000, Size: 0x000004e8, Max: 0x00004000, ABSOLUTE)
0x40000000 0x00000060 Zero RW 60 .bss c_t.l(libspace.o) 0x40000060 0x00000000 Zero RW 2 HEAP startup.o 0x40000060 0x00000488 Zero RW 1 STACK startup.o
Hi, You will check the map files and the position of my code.
View all questions in Keil forum