ADVERTISEMENT

wtf.rar

[Keil] Dziwne działanie SPI przy tablicach wielowymiarowych w strukturze

Problemem jest użyta przeze mnie nazwa struktury s_buffer. W załączniku okrojone funkcje. i tak: w pliku LCD.c definuje strukurę struct s_buffer sMatrix_LCD a jej deklaracja zawarta jest w LCD.h #include <LPC214x.H> #include "LCD.h" //------spi struct SPI_Params { unsigned char ucCsPinNr; unsigned char ucCsPol; unsigned char ucCpha; unsigned char ucCpol; unsigned char *pucBytesForTx; unsigned char ucNrOfBytesForTx; unsigned char ucTxBytesOffset; unsigned char *pucBytesForRx; unsigned char ucNrOfBytesForRx; unsigned char ucRxBytesOffset; }; //-----struct def. struct SPI_Params aa; struct s_buffer sMatrix_LCD; //------------Function void Init_LCD(void) { } void goto_YX(unsigned char uc8Y, unsigned char uc8X) { aa.pucBytesForTx="string" ; } co ciekawe nawet po zakomentowaniu jej dekaracji kompilator nie protestuje. /* struct s_buffer { unsigned char x_position; unsigned char y_position; unsigned char ucPreviousBajt; unsigned char Matrix[7][67]; }; */ void Init_LCD(void); void goto_YX(unsigned char uc8Y, unsigned char uc8X); a wrzucając deklarację bezpośrednioz LCD.h do LCD.c jest błąd LCD.c(3): error: #101: "s_buffer" has already been declared in the current scope Czyżby nagłówek LPC214x może tak mieszać.. Po zmianie nazwy struktury jest wszystko ok. Ktoś może jest w stanie wyjaśnić? Keil uVision3; proc to LPC2141.


Download file - link to post
  • wtf.rar
    • system_setup.crf
    • First_version.tra
    • lcd.crf
    • main.d
    • match_compare_init.d
    • spi.d
    • lcd.o
    • First_version_Opt.Bak
    • lcd.__i
    • Startup.s
    • lcd.d
    • Startup.o
    • Startup.lst
    • delay_routine .o
    • First_version_Uv2.Bak
    • system_setup.o
    • spi.crf
    • LCD.h
    • match_compare_init.o
    • First_version_Target 1.dep
    • First_version.hex
    • First_version.plg
    • First_version.Opt
    • First_version.Uv2
    • First_version.axf
    • First_version.htm
    • delay_routine .crf
    • main.o
    • LCD.c
    • Main.c
    • main.__i
    • spi.o
    • First_version.map
    • match_compare_init.crf
    • main.crf
    • delay_routine .d
    • First_version.lnp
    • system_setup.d


wtf.rar > Main.c

#include &amp; lt; LPC214x.H &amp; gt;
#include &quot; LCD.h &quot;

void SPI_InitMaster(void)
{
FIO0DIR |= 0x000000D0; // set SCK0, MOSI0, SSEL0 as output and MISO0 as input
FIO0SET |= 0x00000080; // set p0.7 (SSEL0) to high (disable SPI slave chip select)

PINSEL0 |= 0x5500; //SCK_0, MISO_0, MOSI_0, SSEL0 enable
S0SPCR = 0x20; //SPI master mode
S0SPCCR = 40; //SPI clock PCLK/S0SPCCR = &amp; gt; 49.152/40 = 1.22MHz
}

/****************************************************************************************************/
int main(void)
{

SPI_InitMaster();
Init_LCD();

while(1)
{
S0SPDR=0xFF; //przepychanie
while(!(S0SPSR &amp; 1 &amp; lt; &amp; lt; 7)){}

}

return 0;
}




/****************************************************************************************************/
/****************************************************************************************************/
/* I N T E R R U P T */
/****************************************************************************************************/


/****************************************************************************************************/


wtf.rar > First_version.htm

Static Call Graph - [C:\Documents and Settings\ginar\Pulpit\wtf\First_version.axf]

Static Call Graph for image C:\Documents and Settings\ginar\Pulpit\wtf\First_version.axf
# &amp; #060CALLGRAPH &amp; #062# ARM Linker, RVCT3.1 [Build 942]: Last Updated: Mon Mar 09 17:40:22 2009

Maximum Stack Usage = 64 bytes + Unknown(Functions without stacksize, Cycles, Untraceable Function Pointers)
Call chain for Maximum Stack Depth:
__main &amp; rArr; __rt_entry &amp; rArr; __rt_lib_init &amp; rArr; _fp_init


Functions with no stack information

Reset_Handler
__user_initial_stackheap
Undef_Handler
SWI_Handler
PAbt_Handler
DAbt_Handler
IRQ_Handler
FIQ_Handler




Mutually Recursive functions
Undef_Handler &amp; nbsp; &amp; nbsp; &amp; nbsp; &amp; rArr; &amp; nbsp; &amp; nbsp; &amp; nbsp; Undef_Handler
SWI_Handler &amp; nbsp; &amp; nbsp; &amp; nbsp; &amp; rArr; &amp; nbsp; &amp; nbsp; &amp; nbsp; SWI_Handler
PAbt_Handler &amp; nbsp; &amp; nbsp; &amp; nbsp; &amp; rArr; &amp; nbsp; &amp; nbsp; &amp; nbsp; PAbt_Handler
DAbt_Handler &amp; nbsp; &amp; nbsp; &amp; nbsp; &amp; rArr; &amp; nbsp; &amp; nbsp; &amp; nbsp; DAbt_Handler
IRQ_Handler &amp; nbsp; &amp; nbsp; &amp; nbsp; &amp; rArr; &amp; nbsp; &amp; nbsp; &amp; nbsp; IRQ_Handler
FIQ_Handler &amp; nbsp; &amp; nbsp; &amp; nbsp; &amp; rArr; &amp; nbsp; &amp; nbsp; &amp; nbsp; FIQ_Handler



Function Pointers

Reset_Handler
Undef_Handler
SWI_Handler
PAbt_Handler
DAbt_Handler
IRQ_Handler
FIQ_Handler
__main
__ARM_get_argv
main
__I_use_semihosting



Global Symbols

Reset_Handler (ARM, 0 bytes, Stack size unknown bytes, startup.o(RESET))

__main (ARM, 8 bytes, Stack size 0 bytes, __main.o(!!!main))
[Stack] Max Depth = 64 + Unknown Stack Size
Call Chain = __main &amp; rArr; __rt_entry &amp; rArr; __rt_lib_init &amp; rArr; _fp_init

[Calls] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__scatterload
&amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__rt_entry


__scatterload (ARM, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter))
[Called By] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__main


__scatterload_rt2 (ARM, 52 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED)
[Calls] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__rt_entry


__scatterload_null (ARM, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED)

__scatterload_zeroinit (ARM, 44 bytes, Stack size unknown bytes, __scatter_zi.o(!!handler_zi), UNUSED)

__ARM_argv_veneer (ARM, 16 bytes, Stack size 0 bytes, lib_init.o(.emb_text))
[Called By] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__rt_lib_init (via Veneer)


__user_initial_stackheap (ARM, 0 bytes, Stack size unknown bytes, startup.o(.text))
[Called By] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__user_setup_stackheap


SPI_InitMaster (ARM, 80 bytes, Stack size 0 bytes, main.o(.text))
[Called By] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;main


main (ARM, 52 bytes, Stack size 8 bytes, main.o(.text))
[Stack] Max Depth = 8 Call Chain = main

[Calls] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;Init_LCD
&amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;SPI_InitMaster

[Address Reference Count : 1] kernel.o(.text)

Init_LCD (ARM, 4 bytes, Stack size 0 bytes, lcd.o(.text))
[Called By] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;main


goto_YX (ARM, 16 bytes, Stack size 0 bytes, lcd.o(.text), UNUSED)

__use_two_region_memory (ARM, 4 bytes, Stack size 0 bytes, stkheap2.o(.text), UNUSED)

__rt_stackheap_init (ARM, 36 bytes, Stack size 16 bytes, stkheap2.o(.text))
[Stack] Max Depth = 24 + Unknown Stack Size
Call Chain = __rt_stackheap_init &amp; rArr; __user_setup_stackheap

[Calls] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__rt_stackheap_storage
&amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__user_setup_stackheap

[Called By] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__rt_entry


__rt_heap_extend (ARM, 24 bytes, Stack size 8 bytes, stkheap2.o(.text), UNUSED)
[Calls] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__user_heap_extend (Weak Reference)


__rt_entry (ARM, 76 bytes, Stack size 16 bytes, kernel.o(.text))
[Stack] Max Depth = 64 + Unknown Stack Size
Call Chain = __rt_entry &amp; rArr; __rt_lib_init &amp; rArr; _fp_init

[Calls] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;_platform_post_lib_init
&amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;_platform_post_stackheap_init
&amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__rt_lib_init (via Veneer)
&amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;exit (via BX)
&amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__rt_stackheap_init

[Called By] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__scatterload_rt2
&amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__main


__rt_exit (ARM, 20 bytes, Stack size 8 bytes, kernel.o(.text))
[Stack] Max Depth = 16 Call Chain = __rt_exit &amp; rArr; __rt_lib_shutdown

[Calls] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__rt_lib_shutdown (via Veneer)

[Called By] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;exit (via Veneer)


__rt_abort (ARM, 8 bytes, Stack size 0 bytes, kernel.o(.text), UNUSED)
[Calls] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;_sys_exit


__user_setup_stackheap (ARM, 96 bytes, Stack size 8 bytes, sys_stackheap_outer.o(.text))
[Stack] Max Depth = 8 + Unknown Stack Size
Call Chain = __user_setup_stackheap

[Calls] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__user_perproc_libspace
&amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__user_initial_stackheap

[Called By] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__rt_stackheap_init


__rt_stackheap_storage (ARM, 12 bytes, Stack size 0 bytes, rt_stackheap_storage_intlibspace.o(.text))
[Called By] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__rt_stackheap_init


_sys_exit (ARM, 20 bytes, Stack size 0 bytes, sys_exit.o(.text), UNUSED)
[Called By] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__rt_abort


__user_libspace (ARM, 8 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED)

__user_perproc_libspace (ARM, 0 bytes, Stack size 0 bytes, libspace.o(.text))
[Called By] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__user_setup_stackheap


__user_perthread_libspace (ARM, 0 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED)

exit (Thumb, 12 bytes, Stack size 0 bytes, exit.o(.text))
[Stack] Max Depth = 16 Call Chain = exit &amp; rArr; __rt_exit &amp; rArr; __rt_lib_shutdown

[Calls] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;_call_atexit_fns (Weak Reference)
&amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__rt_exit (via Veneer)

[Called By] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__rt_entry


__rt_lib_init (Thumb, 184 bytes, Stack size 40 bytes, lib_init.o(.text))
[Stack] Max Depth = 48 Call Chain = __rt_lib_init &amp; rArr; _fp_init

[Calls] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;_fp_init (via Veneer)
&amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__rt_locale (via Veneer)
&amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;_signal_init (Weak Reference)
&amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;_rand_init (Weak Reference)
&amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;_initio (Weak Reference)
&amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;_init_user_alloc (Weak Reference)
&amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;_init_alloc (Weak Reference)
&amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;_getenv_init (Weak Reference)
&amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;_get_lc_time (Weak Reference)
&amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;_get_lc_numeric (Weak Reference)
&amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;_get_lc_monetary (Weak Reference)
&amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;_get_lc_ctype (Weak Reference)
&amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;_get_lc_collate (Weak Reference)
&amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;_fp_trap_init (Weak Reference)
&amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;_clock_init (Weak Reference)
&amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;_atexit_init (Weak Reference)
&amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__cpp_initialize__aeabi_ (Weak Reference)
&amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__alloca_initialize (Weak Reference)
&amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__Heap_DescSize (Weak Reference)
&amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__ARM_exceptions_init (Weak Reference)
&amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__ARM_argv_veneer (via Veneer)

[Called By] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__rt_entry (via Veneer)


__rt_lib_shutdown (Thumb, 22 bytes, Stack size 8 bytes, lib_init.o(.text))
[Stack] Max Depth = 8 Call Chain = __rt_lib_shutdown

[Calls] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;_terminateio (Weak Reference)
&amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;_terminate_user_alloc (Weak Reference)
&amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__cxa_finalize (Weak Reference)

[Called By] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__rt_exit (via Veneer)


_platform_post_stackheap_init (ARM, 12 bytes, Stack size 0 bytes, boardinit2.o(.text))
[Called By] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__rt_entry


_platform_post_lib_init (ARM, 16 bytes, Stack size 8 bytes, boardinit3.o(.text))
[Stack] Max Depth = 8 Call Chain = _platform_post_lib_init

[Called By] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__rt_entry


__I_use_semihosting (ARM, 0 bytes, Stack size 0 bytes, use_no_semi.o(.text))
[Address Reference Count : 1] sys_exit.o(.text)

__use_no_semihosting_swi (ARM, 4 bytes, Stack size 0 bytes, use_no_semi.o(.text), UNUSED)

__rt_locale (ARM, 12 bytes, Stack size 0 bytes, rt_locale_intlibspace.o(.text))
[Called By] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__rt_lib_init (via Veneer)


__ARM_get_argv (Thumb, 6 bytes, Stack size 4 bytes, no_argv.o(.text))
[Stack] Max Depth = 4 Call Chain = __ARM_get_argv

[Address Reference Count : 1] lib_init.o(.emb_text)

__rt_fp_status_addr (ARM, 12 bytes, Stack size 0 bytes, rt_fp_status_addr_intlibspace.o(.text))
[Called By] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;_fp_init


_fp_init (ARM, 24 bytes, Stack size 8 bytes, fpinit.o(x$fpl$fpinit))
[Stack] Max Depth = 8 Call Chain = _fp_init

[Calls] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__rt_fp_status_addr

[Called By] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__rt_lib_init (via Veneer)


__fplib_config_pureend_doubles (ARM, 0 bytes, Stack size unknown bytes, fpinit.o(x$fpl$fpinit), UNUSED)


Local Symbols

Undef_Handler (ARM, 4 bytes, Stack size unknown bytes, startup.o(RESET))
[Calls] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;Undef_Handler

[Called By] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;Undef_Handler

[Address Reference Count : 1] startup.o(RESET)

SWI_Handler (ARM, 4 bytes, Stack size unknown bytes, startup.o(RESET))
[Calls] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;SWI_Handler

[Called By] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;SWI_Handler

[Address Reference Count : 1] startup.o(RESET)

PAbt_Handler (ARM, 4 bytes, Stack size unknown bytes, startup.o(RESET))
[Calls] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;PAbt_Handler

[Called By] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;PAbt_Handler

[Address Reference Count : 1] startup.o(RESET)

DAbt_Handler (ARM, 4 bytes, Stack size unknown bytes, startup.o(RESET))
[Calls] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;DAbt_Handler

[Called By] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;DAbt_Handler

[Address Reference Count : 1] startup.o(RESET)

IRQ_Handler (ARM, 4 bytes, Stack size unknown bytes, startup.o(RESET))
[Calls] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;IRQ_Handler

[Called By] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;IRQ_Handler

[Address Reference Count : 1] startup.o(RESET)

FIQ_Handler (ARM, 4 bytes, Stack size unknown bytes, startup.o(RESET))
[Calls] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;FIQ_Handler

[Called By] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;FIQ_Handler

[Address Reference Count : 1] startup.o(RESET)


Undefined Global Symbols

__ARM_exceptions_init (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
[Called By] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__rt_lib_init (Weak Reference)


__Heap_DescSize (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
[Called By] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__rt_lib_init (Weak Reference)


__alloca_initialize (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
[Called By] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__rt_lib_init (Weak Reference)


__cpp_initialize__aeabi_ (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
[Called By] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__rt_lib_init (Weak Reference)


__cxa_finalize (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
[Called By] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__rt_lib_shutdown (Weak Reference)


__user_heap_extend (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED, UNUSED)
[Called By] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__rt_heap_extend (Weak Reference)


_atexit_init (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
[Called By] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__rt_lib_init (Weak Reference)


_call_atexit_fns (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
[Called By] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;exit (Weak Reference)


_clock_init (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
[Called By] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__rt_lib_init (Weak Reference)


_fp_trap_init (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
[Called By] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__rt_lib_init (Weak Reference)


_get_lc_collate (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
[Called By] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__rt_lib_init (Weak Reference)


_get_lc_ctype (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
[Called By] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__rt_lib_init (Weak Reference)


_get_lc_monetary (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
[Called By] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__rt_lib_init (Weak Reference)


_get_lc_numeric (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
[Called By] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__rt_lib_init (Weak Reference)


_get_lc_time (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
[Called By] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__rt_lib_init (Weak Reference)


_getenv_init (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
[Called By] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__rt_lib_init (Weak Reference)


_init_alloc (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
[Called By] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__rt_lib_init (Weak Reference)


_init_user_alloc (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
[Called By] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__rt_lib_init (Weak Reference)


_initio (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
[Called By] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__rt_lib_init (Weak Reference)


_rand_init (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
[Called By] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__rt_lib_init (Weak Reference)


_signal_init (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
[Called By] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__rt_lib_init (Weak Reference)


_terminate_user_alloc (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
[Called By] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__rt_lib_shutdown (Weak Reference)


_terminateio (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
[Called By] &amp; gt; &amp; gt; &amp; nbsp; &amp; nbsp; &amp; nbsp;__rt_lib_shutdown (Weak Reference)


wtf.rar > LCD.h

/*******************************************************************************
* LCD Nokia 3310 service function.
* 05-03-09 15:07
*******************************************************************************/
#ifndef __LCD
#define __LCD

/*HARD DEf:- &amp; gt; Setting Lcd: Reset, DataCommand*/

#define DATA_COMMAND_LCD_Port FIO1DIR
#define DATA_COMMAND_LCD_PinNr 17
#define RESET_LCD_Port FIO0DIR
#define RESET_LCD_PinNr 29
//------
#define LCD_Data FIO1SET |=(1 &amp; lt; &amp; lt; DATA_COMMAND_LCD_PinNr)
#define LCD_Command FIO1CLR |=(1 &amp; lt; &amp; lt; DATA_COMMAND_LCD_PinNr)
#define ResetLCD_ON FIO0CLR |=(1 &amp; lt; &amp; lt; RESET_LCD_PinNr)
#define ResetLCD_OFF FIO0SET |=(1 &amp; lt; &amp; lt; RESET_LCD_PinNr)

/*LCD matrix dimension Byte organization*/

#define LCD_MATRIX_Xmax 84
#define LCD_MATRIX_Ymax 6 //maxY pixels/8

/*------enum &amp; struct &amp; variables-------------------------*/


enum Polar {Normal, Negativ};
enum Orientacja {VERTICAL, HORIZONTAL};
enum mode {LCD_set, LCD_clear, LCD_xor};

struct s_buffer //virtual matrix lcd
{
unsigned char x_position;
unsigned char y_position;
unsigned char ucPreviousBajt;
unsigned char Matrix[LCD_MATRIX_Xmax][LCD_MATRIX_Xmax];
};
struct s_Clipper //przycinanie grafiki
{
unsigned char left;
unsigned char right;
unsigned char top;
unsigned char bot;
};
/*------Hardware function--------------------------------*/
void Init_LCD(void);


void goto_YX(unsigned char uc8Y, unsigned char uc8X);
void Lcd_Update(void);

/*------Virytual function--------------------------------*/
void Lcd_Pixel(unsigned char uc_x, unsigned char uc_y, enum mode eMode, struct s_Clipper *pCliper);



#endif


wtf.rar > LCD.c

#include &amp; lt; LPC214x.H &amp; gt;
#include &quot; LCD.h &quot;



//------spi
struct SPI_Params
{
unsigned char ucCsPinNr;
unsigned char ucCsPol;
unsigned char ucCpha;
unsigned char ucCpol;

unsigned char *pucBytesForTx;
unsigned char ucNrOfBytesForTx;
unsigned char ucTxBytesOffset;

unsigned char *pucBytesForRx;
unsigned char ucNrOfBytesForRx;
unsigned char ucRxBytesOffset;
};


//-----struct def.
struct SPI_Params aa;
struct s_buffer sMatrix_LCD;


//------------Function
void Init_LCD(void)
{

}

void goto_YX(unsigned char uc8Y, unsigned char uc8X)
{
aa.pucBytesForTx= &quot; string &quot; ;
}