[U-Boot] OMAP3: EVM: Linker errors across tool chain versions
Alexander Holler
holler at ahsoftware.de
Thu Dec 16 15:31:21 CET 2010
Am 16.12.2010 14:47, schrieb Alexander Holler:
> To put some salt into the wounds ;) , Using gcc 4.5.1 board_init_f isn't
> reached here. When I'm using gcc 4.3.5 it is reached. In both cases I've
> used the same version of binutils, 2.20.1.
>
> For a test without using jtag, I've modified board_init_f to be
>
> -----------
> board_init_f()
> {
> turn_on_leds
> while(1) ;
> ...
> }
>
> I'm working with the master (f8689b9eb3a7f6925cd50404a12479889188c510)
> on a beagleboard, using
> --------
> make mrproper
> make omap3_beagle_config
> make
> --------
To be precise, turn_on_leds is:
-------
// GPIO5
#define GPIO5_OE (*((volatile unsigned long *)0x49056034)) //
Output Data Enable Register (Table 24-27)
#define GPIO5_DATAOUT (*((volatile unsigned long *)0x4905603C))
// Data Out register (Table 24-31)
#define LED1 0x00200000 // Bit 21
#define LED0 0x00400000 // Bit 22
// PRCM
#define CM_FCLKEN_PER (*((volatile unsigned long *)0x48005000))
// Controls the modules functional clock activity. (Table 4-237)
#define CM_ICLKEN_PER (*((volatile unsigned long *)0x48005010))
// Controls the modules interface clock activity (Table 4-239)
// SCM
#define CONTROL_PADCONF_UART1_TX (*((volatile unsigned long
*)0x4800217C)) // Pad configuration for GPIO_149 [31:16] (Tables 7-4 &
7-74)
#define CONTROL_PADCONF_UART1_CTS (*((volatile unsigned long
*)0x48002180)) // Pad configuration for GPIO_150 [15:0] (Tables 7-4 &
7-74)
// Set the pinmux to select the GPIO signal
CONTROL_PADCONF_UART1_TX &= 0x0000FFFF; // [31:16]=GPIO_149 - Clear
register bits [31:16]
CONTROL_PADCONF_UART1_TX |= 0x00040000; // [31:16]=GPIO_149 - select
mux mode 4 for gpio
CONTROL_PADCONF_UART1_TX &= 0xFFFF0000; // [15:0] =GPIO_150 - Clear
register [15:0]
CONTROL_PADCONF_UART1_TX |= 0x00000004; // [15:0] =GPIO_150 - select
mux mode 4 for gpio
// Switch on the Interface and functional clocks to the GPIO5 module
CM_FCLKEN_PER |= 0x20; // Enable GPIO5 F clock
CM_FCLKEN_PER |= 0x20; // Enable GPIO5 I clock
// Configure the GPIO signals
GPIO5_OE &= ~(LED1+LED0); // Set GPIO_149 & GPIO_150 (GPIO 4 bit
2) to output
GPIO5_DATAOUT |= LED0; // Set GPIO_150 high
GPIO5_DATAOUT |= LED1; // Set GPIO_149 high
//GPIO5_DATAOUT &= ~LED1; // Set GPIO_149 low
-------
(code stolen from somewhere on the web, just to show bss isn't used here)
Regards,
Alexander
More information about the U-Boot
mailing list