FAQ | Points | Add... | Recent posts | Search | Register | Log in


Przykładowe projekty dla ARMów


Post new topic  Reply to topic      Main Page -> Forum Index -> Microcontrollers Generally -> ARM Microcontrollers -> Przykładowe projekty dla ARMów
Author
Message
Freddie Chopin
Poziom 25
Poziom 25


Joined: 12 Dec 2005
Posts: 7288
Location: Zawiercie

Post#211 Post from the author of the topic 24 Jul 2011 09:15   

Re: Przykładowe projekty dla ARMów


W braku tablicy wektorów (;

Przykładowy projekt pojawiłby się bardzo chętnie, tyle że nie mam niczego z takim układem - może pożyczysz jakąś małą makietkę na kilka dni? <:

W każdym razie proponowałbym postąpić zupełnie inaczej. Weź projekt dla STM32 - w nim jest najmniej do zmiany:
1. w skrypcie linkera ustawiasz inne adresy i rozmiary pamięci
2. w tablicy wektorów zmieniasz odpowiednio nazwy odpowiednich przerwań, usuwasz niewystępujące itd. (można się tu wspomóc tablicą dla lpc1114, wiele przerwań będzie identycznych)
3. w pliku main zmieniasz oczywiście kod inicjalizacyjny (; (uwaga j.w. - można częściowo skorzystać z kodu dla lpc1114)

W makefile i startupie nie zmieniasz nic - nie ma potrzeby.

4\/3!!
Back to top
   
LordBlick
Poziom 23
Poziom 23


Joined: 31 Aug 2004
Posts: 3685
Location: Słupsk

Post#212 25 Jul 2011 09:52   

Re: Przykładowe projekty dla ARMów


Longos wrote:
Czy jest nadzieja, że pojawi się podobny do LPC1117 projekt dotyczący LPC1759 ? Próbuje zgodnie z helpem w CMSIS NXP stworzyć make i skrypt linkera
W LPCXpresso przykładów na migające diodki jest pełno dla każdego procesora wraz z Eclipse i skryptami linkera...
http://lpcxpresso.code-red-tech.com/LPCXpresso/
W wersji na Linux jest to katalog /usr/local/lpcxpresso_4.0.5_113/lpcxpresso/Examples/NXP
Back to top
   
Google

Google Adsense


Post# 25 Jul 2011 09:52   





Back to top
   
Longos
Poziom 11
Poziom 11


Joined: 27 Apr 2003
Posts: 60
Location: Opalenica

Post#213 25 Jul 2011 13:20   

Re: Przykładowe projekty dla ARMów


Skrypty linkera porozbijane są na trzy różne pliki, a makefile ma w sobie jakieś powiązania z plikami konkretnego projektu... Oj, trzyba było pozostać przy 8-bitowcach ;(
Back to top
   
gaskoin
Poziom 22
Poziom 22


Joined: 02 Jun 2010
Posts: 2182
Location: Bytom

Post#214 25 Jul 2011 19:39   

Re: Przykładowe projekty dla ARMów


Trza było skleić to wszystko do kupy tak, żeby pliki były jak najbardziej uniwersalne.
Back to top
   
markosik20
Poziom 22
Poziom 22


Joined: 27 Mar 2003
Posts: 2032
Location: Będzin

Post#215 25 Jul 2011 23:23   

Re: Przykładowe projekty dla ARMów


Longos wrote:
Skrypty linkera porozbijane są na trzy różne pliki, a makefile ma w sobie jakieś powiązania z plikami konkretnego projektu... Oj, trzyba było pozostać przy 8-bitowcach ;(


Bo LPCExpresso posiada plugin (podobnie jak plugin AVR) do automatycznej generacji makefila oraz skryptów linkera. Niestety plugin jest "toporny" i stworzony tak żeby za dużo w nim nie można było poustawiać. Mnie nie udało się zmusić go do pracy z zewnętrznym kompilatorem (albo się nie da albo za mało wytrwały jestem :D ) i plugin uparcie chciał korzystać z kompilatora dostarczonego przez Code Red.
Back to top
   
LordBlick
Poziom 23
Poziom 23


Joined: 31 Aug 2004
Posts: 3685
Location: Słupsk

Post#216 26 Jul 2011 01:51   

Re: Przykładowe projekty dla ARMów


http://www.google.pl/search?q=java+reverse+engineering ;)
Back to top
   
Freddie Chopin
Poziom 25
Poziom 25


Joined: 12 Dec 2005
Posts: 7288
Location: Zawiercie

Post#217 Post from the author of the topic 26 Jul 2011 08:12   

Re: Przykładowe projekty dla ARMów


Plugin do automatycznej generacji Makefile jest dostępny normalny (GNU ARM Eclipse Plugin), a automatyczne generowanie skryptów linkera nie ma sensu... Jeśli ma się przykład dla danej architektury (czyli np dla Cortex-Mx), to naprawdę wystarczy w nim zmienić kilka cyferek, bo jedyne czym się różnią te skrypty to rozmiary i adresy pamięci (w obrębie jednej rodziny, np. STM32, tylko rozmiarami).

4\/3!!
Back to top
   
Co_pat
Poziom 13
Poziom 13


Joined: 15 Oct 2007
Posts: 144
Location: Włocławek

Post#218 09 Sep 2011 21:12   

Re: Przykładowe projekty dla ARMów


Witam serdecznie!

Od dwóch dni walczę z LPC2148.
Eclipse skonfigurowałem wg artykułu Freddiego i dzięki temu poszło trochę z górki. Jako pierwszy projekt oczywiście od Freddiego lpc2103_blink_led-1.2.0-100415 w którym zmieniłem tylko następujące fragmenty:
Plik rom.ld:
Code C - [expand]
 
__user_system_stack_size = 0x00000400;
__fiq_stack_size = 0x00000004;
__irq_stack_size = 0x0000100;
__supervisor_stack_size = 0x00000004;
__abort_stack_size = 0x00000020;
__undefined_stack_size = 0x00000040;
 
 
MEMORY
{
rom (rx) : org = 0x00000000, len = 512k
ram (rwx) : org = 0x40000000, len = 32k
 
}
 

Ale czy to wszystko i poprawnie?

Oczywiście program działał na LPC2148 ale wraz z powiększeniem kodu zaczynały się pojawiać problemy. Na początku okazało się, że wielkości stosów należało zmienić, a właściwie zadeklarować ( takie jak wyżej ). Teraz mam problem z operacjami na zmiennych typu float. Przykładowo takie operacje zwracają zero:
Code C - [expand]
 
float a;
int d;
 
a = 1.234;
d = (signed int)a*10.0;
 

Przeczytałem, że to może dotyczyć braku bibliotek? Czy to chodzi o libgcc.a i libm.a; w jaki sposób dołączyć je do linkowania. Na forum znalazłem, że należy je dodać w makefile, ale nie bardzo wiem jak?
Back to top
   
Freddie Chopin
Poziom 25
Poziom 25


Joined: 12 Dec 2005
Posts: 7288
Location: Zawiercie

Post#219 Post from the author of the topic 10 Sep 2011 13:35   

Re: Przykładowe projekty dla ARMów


Co do stosów, to proponuję wpisywanie wartości podzielnych przez 8. Jeśli nie korzystasz z przerwań i innych dziwnych trybów, to rozmiar pozostałych stosów może być równy zero.

W jaki sposób stwierdzasz, że wynik jest zero? Bibliotek nie trzeba dołączać ręcznie, kompilator sam sobie z tym radzi. Jak chcesz go wspomóc koniecznie, to do zmiennej LIBS (czy jakos tak) w Makefile dopisz "-lm"

4\/3!!
Back to top
   
Co_pat
Poziom 13
Poziom 13


Joined: 15 Oct 2007
Posts: 144
Location: Włocławek

Post#220 10 Sep 2011 14:09   

Re: Przykładowe projekty dla ARMów


Freddie Chopin wrote:
Co do stosów, to proponuję wpisywanie wartości podzielnych przez 8. Jeśli nie korzystasz z przerwań i innych dziwnych trybów, to rozmiar pozostałych stosów może być równy zero.

Właśnie dziś przeczytałem o tym w innym temacie. Właściwie jak na razie używam tylko wektoryzowanych przerwań, a wielkości stosów abort,irq i undef ustawiłem wg user maual.

Freddie Chopin wrote:
W jaki sposób stwierdzasz, że wynik jest zero?

np. mnożę zmienną float przez 10, rzutuję na int i wysyłam przez uart za pomocą itoa ( też Twojego autorstwa :-) ) Zdarzyło mi się też, że po mnożeniu przez 10 czy 100 wynik był jakby bez części po przecinku ( np. 2.345 * 100 = 200 ).
Back to top
   
gaskoin
Poziom 22
Poziom 22


Joined: 02 Jun 2010
Posts: 2182
Location: Bytom

Post#221 10 Sep 2011 14:28   

Re: Przykładowe projekty dla ARMów


Nic dziwnego skoro rzutowanie ma wyższy priorytet niż mnożenie to :

Code C - [expand]
(int)2.433444 * 100 = 2 * 100


co innego

Code C - [expand]
(int)(2.58684 * 100)

Back to top
   
Co_pat
Poziom 13
Poziom 13


Joined: 15 Oct 2007
Posts: 144
Location: Włocławek

Post#222 10 Sep 2011 14:48   

Re: Przykładowe projekty dla ARMów


gaskoin wrote:
Nic dziwnego skoro rzutowanie ma wyższy priorytet niż mnożenie to :

Kod C - [rozwiń]
(int)2.433444 * 100 = 2 * 100


Dzięki gaskoin nie wiedziałem, że rzutowanie ma wyższy priorytet.
Funkcje matematyczne typu atan() również już działają :)
Mój problem uważam za rozwiązany. Dziękuję Freddie Chopin i gaskoin.
Back to top
   
PietrekDer
Poziom 13
Poziom 13


Joined: 01 Apr 2005
Posts: 135
Location: Chrzanów

Post#223 20 Nov 2011 14:12   

Re: Przykładowe projekty dla ARMów


Witam

Hmm, walczę od jakiegoś czasu z uruchomieniem toolchaina Eclipse + CodeSourcery itd dla STM32 (dokładnie STM32F107VCT) i mam pewien problem. Przejrzałem kilka różnych projektów, w których podpatrywałem pliki skryptowe linkera (*.ld) jak i pliki makefile. Na razie kompiluje mi się gdy przykładowo zrobię plik main.c z takim kodem:

Code C - [expand]
void main()
{
while(1)
{}
}
void SystemInit( void )
{
}


Funkcja SystemInit jest wymagana, ponieważ projekt chcę oprzeć na bibliotekach dostarczonych przez ST (STM32F10x_StdPeriph_Lib_V3.5.0) a tam, plik startup odwołuje się właśnie do funkcji SystemInit.
Mój plik makefile wygląda tak (dla jednego pliku main.c):
Code C - [expand]
 
# Project name
PROJECT_NAME=simple
 
OUT_DIR=obj
 
CC=arm-none-eabi-gcc
OBJCOPY=arm-none-eabi-objcopy
OBJDUMP=arm-none-eabi-size
NM = arm-none-eabi-nm
LDSCRIPT=stm32F107vct.ld
 
# should use --gc-sections but the debugger does not seem to be able to cope with the option.
LINKER_FLAGS=-nostartfiles -Xlinker -o$(PROJECT_NAME).axf -Xlinker -M -Xlinker -Map=$(PROJECT_NAME).map -Xlinker --no-gc-sections
 
DEBUG=-ggdb
OPTIM=-O0
 
CFLAGS=$(DEBUG) \
$(OPTIM) \
-T$(LDSCRIPT) \
-I . \
-D STM32F10X_CL \
-D USE_STDPERIPH_DRIVER \
-D VECT_TAB_FLASH \
-D GCC_ARMCM3 \
-D STACK_LWIP_130 \
-D inline= \
-D PACK_STRUCT_END=__attribute\(\(packed\)\) \
-D ALIGN_STRUCT_END=__attribute\(\(aligned\(4\)\)\) \
-mthumb \
-mcpu=cortex-m3 \
-ffunction-sections \
-fdata-sections
 
 
SOURCE= main.c \
 
LIBS=
 
OBJS = $(SOURCE:.c=.o)
 
all: $(PROJECT_NAME).bin
 
$(PROJECT_NAME).bin : $(PROJECT_NAME).axf
$(OBJCOPY) $(PROJECT_NAME).axf -O binary $(PROJECT_NAME).bin
 
$(PROJECT_NAME).axf : $(OBJS) startup_stm32f10x_cl.o Makefile
$(CC) $(CFLAGS) $(OBJS) startup_stm32f10x_cl.o $(LIBS) $(LINKER_FLAGS)
 
$(OBJS) : %.o : %.c Makefile
$(CC) -c $(CFLAGS) $< -o $@
 
startup_stm32f10x_cl.o : startup_stm32f10x_cl.s Makefile
$(CC) -c $(CFLAGS) -O1 startup_stm32f10x_cl.s -o startup_stm32f10x_cl.o
 
clean :
cs-rm $(OBJS)
cs-rm startup_stm32f10x_cl.o
cs-rm $(PROJECT_NAME).axf
 
log : $(PROJECT_NAME).axf
$(NM) -n $(PROJECT_NAME).axf > $(PROJECT_NAME)SymbolTable.txt
$(OBJDUMP) $(PROJECT_NAME).axf > $(PROJECT_NAME)MemoryListing.txt


Natomiast mój plik skryptu linkera stm32f107vct.ld ma następującą zawartość:
Code C - [expand]
 
/* Program Entry, set to mark it as "used" and avoid gc */
ENTRY(Reset_Handler)
 
/* Memory Spaces Definitions */
MEMORY
{
RAM (RWX) : ORIGIN = 0x20000000, LENGTH = 64K
FLASH (RX) : ORIGIN = 0x08000000, LENGTH = 256K
EXTSRAM (RWX) : ORIGIN = 0x00000000, LENGTH = 0
EEMUL (RWX) : ORIGIN = 0x00000000, LENGTH = 0
FLASHB1 (RX) : ORIGIN = 0x00000000, LENGTH = 0
EXTMEMB0 (RX) : ORIGIN = 0x00000000, LENGTH = 0
EXTMEMB1 (RX) : ORIGIN = 0x00000000, LENGTH = 0
EXTMEMB2 (RX) : ORIGIN = 0x00000000, LENGTH = 0
EXTMEMB3 (RX) : ORIGIN = 0x00000000, LENGTH = 0
}
 
/* higher address of the user mode stack */
_estack = ORIGIN(RAM)+LENGTH(RAM);
 
/* start of the two 1kByte pages used by EEprom emulation at end of flash */
_seemul = ORIGIN(EEMUL);
 
/* There will be a link error if there is not this amount of RAM free at the end. */
_Minimum_Stack_Size = 0x100 ;
 
/* Check valid alignment for VTOR */
ASSERT(ORIGIN(FLASH) == ALIGN(ORIGIN(FLASH), 0x80), "Start of memory region flash not aligned for startup vector table");
 
/* Sections Definitions */
 
SECTIONS
{
 
/* the program code is stored in the .text section, which goes to Flash */
.text :
{
. = ALIGN(0x80); /* PM0056, Rev.1 (4/2009), 4.3.3 */
_isr_vectorsflash_offs = . - 0x08000000;
KEEP(*(.isr_vectorsflash))
. = ALIGN(4);
*(.text) /* code */
*(.text.*) /* remaining code (-ffunction-sections)*/
*(.stub .gnu.linkonce.t.*)
*(.rodata .rodata.* .gnu.linkonce.r.*) /* read-only data (constants) */
*(.glue_7 .glue_7t) /* redundant for thumb2 ?! */
. = ALIGN(4);
_etext = .;
/* This is used by the startup in order to initialize the .data secion */
_sidata = _etext;
} >FLASH
 
 
/* This is the initialized data section
The program executes knowing that the data is in the RAM
but the loader puts the initial values in the FLASH (inidata).
It is one task of the startup to copy the initial values from FLASH to RAM. */

.data : AT ( _sidata )
{
. = .;
. = ALIGN(4);
/* This is used by the startup in order to initialize the .data section */
_sdata = . ;
 
. = ALIGN(0x80);
_isr_vectorsram_offs = . - 0x20000000;
KEEP(*(.isr_vectorsram))
. = ALIGN(4);
 
*(.ramfunc*)
. = ALIGN(4);
*(.data .data.* .gnu.linkonce.d.*)
. = ALIGN(4);
/* This is used by the startup in order to initialize the .data section */
_edata = . ;
} >RAM
 
 
/* This is the uninitialized data section */
.bss (NOLOAD):
{
. = ALIGN(4);
/* This is used by the startup in order to initialize the .bss section */
_sbss = .;
*(.bss .bss.*)
*(COMMON)
. = ALIGN(4);
/* This is used by the startup in order to initialize the .bss section */
_ebss = . ;
} >RAM
 
PROVIDE ( end = _ebss );
PROVIDE ( _end = _ebss );
 
/* This is the user stack section
This is just to check that there is enough RAM left for the User mode stack
It should generate an error if it's full.
*/

._usrstack (NOLOAD):
{
. = ALIGN(4);
_susrstack = . ;
. = . + _Minimum_Stack_Size ;
. = ALIGN(4);
_eusrstack = . ;
} >RAM
 
 
/* this is the FLASH Bank1 */
/* the C or assembly source must explicitly place the code or data there
using the "section" attribute */

.b1text :
{
*(.b1text) /* remaining code */
*(.b1rodata) /* read-only data (constants) */
*(.b1rodata*)
} >FLASHB1
 
/* this is the EXTMEM */
/* the C or assembly source must explicitly place the code or data there
using the "section" attribute */

 
/* EXTMEM Bank0 */
.eb0text :
{
*(.eb0text) /* remaining code */
*(.eb0rodata) /* read-only data (constants) */
*(.eb0rodata*)
} >EXTMEMB0
 
/* EXTMEM Bank1 */
.eb1text :
{
*(.eb1text) /* remaining code */
*(.eb1rodata) /* read-only data (constants) */
*(.eb1rodata*)
} >EXTMEMB1
 
/* EXTMEM Bank2 */
.eb2text :
{
*(.eb2text) /* remaining code */
*(.eb2rodata) /* read-only data (constants) */
*(.eb2rodata*)
} >EXTMEMB2
 
/* EXTMEM Bank0 */
.eb3text :
{
*(.eb3text) /* remaining code */
*(.eb3rodata) /* read-only data (constants) */
*(.eb3rodata*)
} >EXTMEMB3
 
 
 
/* after that it's only debugging information. */
 
/* remove the debugging information from the standard libraries */
/* DISCARD :
{
libc.a ( * )
libm.a ( * )
libgcc.a ( * )
}
*/

 
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
/* DWARF debug sections.
Symbols in the DWARF debugging sections are relative to the beginning
of the section so we begin them at 0. */

/* DWARF 1 */
.debug 0 : { *(.debug) }
.line 0 : { *(.line) }
/* GNU DWARF 1 extensions */
.debug_srcinfo 0 : { *(.debug_srcinfo) }
.debug_sfnames 0 : { *(.debug_sfnames) }
/* DWARF 1.1 and DWARF 2 */
.debug_aranges 0 : { *(.debug_aranges) }
.debug_pubnames 0 : { *(.debug_pubnames) }
/* DWARF 2 */
.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
.debug_abbrev 0 : { *(.debug_abbrev) }
.debug_line 0 : { *(.debug_line) }
.debug_frame 0 : { *(.debug_frame) }
.debug_str 0 : { *(.debug_str) }
.debug_loc 0 : { *(.debug_loc) }
.debug_macinfo 0 : { *(.debug_macinfo) }
/* SGI/MIPS DWARF 2 extensions */
.debug_weaknames 0 : { *(.debug_weaknames) }
.debug_funcnames 0 : { *(.debug_funcnames) }
.debug_typenames 0 : { *(.debug_typenames) }
.debug_varnames 0 : { *(.debug_varnames) }
/* DWARF 3 */
.debug_pubtypes 0 : { *(.debug_pubtypes) }
.debug_ranges 0 : { *(.debug_ranges) }
 
.ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) }
.note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) }
/DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) }
}
 
/* mthomas: from the STM example - moved here for now to keep it as reference, not
used in the project (useful anyway?)*/

 
/* default stack size(s). These are used by the startup in order to allocate stacks for
the different modes. */

__Stack_Size = 1024 ;
 
PROVIDE ( _Stack_Size = __Stack_Size ) ;
__Stack_Init = _estack - __Stack_Size ;
 
/*"PROVIDE" allows to easily override these values from an object file or the commmand line.*/
PROVIDE ( _Stack_Init = __Stack_Init ) ;
 


(kod dla każdego pliku dałem w poście na C, żeby lepiej było czytać)

To że się kompiluje ok to jedno, ale myślę też że ustawienia w plikach są poprawne, jak np adresy pamięci SRAM czy FLASH w pliku *.ld

Jak chcę pododawać pliki CMSIS, biblioteczne do projektu to robię odpowiednie wpisy w makefile, we właściwościach projektu musiałem zlinkować także katalog include z CodeSourcery ( inaczej nie wiedział co to np uint16_t :] ).

I przy kompilacji mam dziwny błąd, wiem co oznacza, ale też jego lokalizacja jest dziwna, i nie wiem gdzie jest zdefiniowane, że procesor jest w trybie ARM :| Jest też jakiś problem ze skompilowaniem pliku stm32f10x_it, ale przecież tam nie ma żadnego konkretnego kodu, tylko puste funkcje będące uchwytami do przerwań :|

Przykładowe projekty dla ARMów

Jakby co, mogę też wrzucić mój przykładowy projekt z już zmodyfikowanym plikiem makefile dla bibliotek i CMSISa.

Z góry dziękuję za pomoc.
Back to top
   
Google

Google Adsense


Post# 20 Nov 2011 14:12   





Back to top
   
Freddie Chopin
Poziom 25
Poziom 25


Joined: 12 Dec 2005
Posts: 7288
Location: Zawiercie

Post#224 Post from the author of the topic 20 Nov 2011 14:36   

Re: Przykładowe projekty dla ARMów


Tylko co ma wspólnego Twój projekt z moimi przykładami? Przecież nie mają wspólnej nawet jednej linijki...

4\/3!!
Back to top
   
Google

Google Adsense


Post# Post from the author of the topic 20 Nov 2011 14:36   





Back to top
   
PietrekDer
Poziom 13
Poziom 13


Joined: 01 Apr 2005
Posts: 135
Location: Chrzanów

Post#225 20 Nov 2011 15:27   

Re: Przykładowe projekty dla ARMów


Hmm, temat brzmi "przykładowe projekty dla armów" więc pomyślałem że tutaj umieszczę post z opisem mojego problemu. A miałem na myśli przykładowy projekt który bazuje na plikach dostarczonych ze standardową biblioteką od ST. Nie chciałem zakładać nowego tematu, skoro już takowy istnieje.
Back to top
   
Freddie Chopin
Poziom 25
Poziom 25


Joined: 12 Dec 2005
Posts: 7288
Location: Zawiercie

Post#226 Post from the author of the topic 20 Nov 2011 15:52   

Re: Przykładowe projekty dla ARMów


Wystarczyło przeczytać pierwszy post i wiedziałbyś o czym jest ten temat, no ale po co - lepiej od razu maznąć nowego posta.

4\/3!!
Back to top
   
PietrekDer
Poziom 13
Poziom 13


Joined: 01 Apr 2005
Posts: 135
Location: Chrzanów

Post#227 20 Nov 2011 16:30   

Re: Przykładowe projekty dla ARMów


Nie rozumiem o co się tak czepiasz i na jakiej podstawie sugerujesz, że gdy pojawił się problem od razu poleciałem na forum maznąć nowego posta. Czytałem cały temat (8 stron) od początku, a także różne inne tematy linkowane tutaj. Jednak początkowo głównie traktuje się tutaj o projektach na LPC2xxx. Przewijały się różne problemy, z makefilami, z plikami *.ld itp. Szukałem w sieci różnych innych przykładowych projektów, aby najpierw samemu poznać temat i spróbować rozwiązać problem.
Przepraszam bardzo, ale mogłeś nazwać temat "Przykładowe projekty dla ARMów Freddiego Chopina" jeśli tak bardzo razi Cię dyskusja o innym projekcie niż Twój. Chciałem tylko prosić o pomoc dlatego nie rozumiem Twojego ataku na mnie.
Ale przepraszam jeśli wszedłem w paradę ze swoim problemem do tego tematu :|
Back to top
   
Freddie Chopin
Poziom 25
Poziom 25


Joined: 12 Dec 2005
Posts: 7288
Location: Zawiercie

Post#228 Post from the author of the topic 20 Nov 2011 16:59   

Re: Przykładowe projekty dla ARMów


Nawet nie musiałeś czytać tych kilku stron, wystarczyło przeczytać pierwszego posta, byle do końca. Przeczytałbyś tam m.in. to:
Freddie Chopin wrote:
Wszelkie uwagi dotyczące tych kodów, jak i paczki z GNU Coreutils, wrzucajcie tutaj...

Podkreśliłem Ci istotne słowo.

Masz swój problem, załóż więc sobie temat - nikt Ci nie broni, pewnie nawet ułatwisz życie chętnym do pomocy, bo nie będą musieli otwierać wątku na 8 stron.

4\/3!!
Back to top
   
PietrekDer
Poziom 13
Poziom 13


Joined: 01 Apr 2005
Posts: 135
Location: Chrzanów

Post#229 20 Nov 2011 17:18   

Re: Przykładowe projekty dla ARMów


Hmm, czytać czytałem, tylko sam chyba zrozumiesz, że po przeczytaniu 8 stron postu i jeszcze kilku innych można zapomnieć o tym, co zacytowałeś. Dlatego tutaj przyznam Ci rację, mój błąd, zapomniałem że napisałeś iż dyskusja tyczy tych konkretnych przykładowych projektów. Chciałem dobrze, nie rzucać nowym tematem o przykładowym projekcie. Ale na razie nie będę zakładał nowego tematu, dostałem od użytkownika jakiś przykładowy projekt w Eclipse i znalazłem w sieci jeszcze jakieś materiały, dlatego jeszcze z tym powalczę sam :)

Pozdrawiam :)
Back to top
   
atom1477
Poziom 25
Poziom 25


Joined: 14 Jul 2005
Posts: 6595

Post#230 20 Nov 2011 19:25   

Re: Przykładowe projekty dla ARMów


Freddie Chopin wrote:
Wszelkie uwagi dotyczące tych kodów, jak i paczki z GNU Coreutils, wrzucajcie tutaj...

Na moje oko to nie zabrania wrzucania uwag z innych kodów tutaj.
Sugerje jedynie żeby nie wrzucać uwag do Twoich kodów gdzie indziej :D

PS. Nie mówię że racja nie jest po Twojej stronie tylko że akurat ten cytat który przedstawiłeś o tym nie świadczy. Żeby świadczył musiał by być zbudowany co najmniej tak:
"Tutaj wrzucajcie wszelkie uwagi dotyczące tych kodów, jak i paczki z GNU Coreutils, ..."
Back to top
   
danrok
Poziom 13
Poziom 13


Joined: 15 Feb 2009
Posts: 124
Location: Zabrze

Post#231 20 Nov 2011 21:59   

Re: Przykładowe projekty dla ARMów


atom1477 wrote:

Na moje oko to nie zabrania wrzucania uwag z innych kodów tutaj.
Sugerje jedynie żeby nie wrzucać uwag do Twoich kodów gdzie indziej :D

PS. Nie mówię że racja nie jest po Twojej stronie tylko że akurat ten cytat który przedstawiłeś o tym nie świadczy. Żeby świadczył musiał by być zbudowany co najmniej tak:
"Tutaj wrzucajcie wszelkie uwagi dotyczące tych kodów, jak i paczki z GNU Coreutils, ..."


a jak na moje oko, Twój poprawiony też o tym nie świadczy :D raczej powinno być: "Tutaj wrzucajcie wszelkie uwagi dotyczące tylko tych kodów, jak i paczki z ...." :D ale trochę offtop się zrobił :)
Back to top
   
atom1477
Poziom 25
Poziom 25


Joined: 14 Jul 2005
Posts: 6595

Post#232 20 Nov 2011 23:39   

Re: Przykładowe projekty dla ARMów


No nie ale mój ma poprawną formę jeżeli chodzi o nakierowanie co powinno być w tym wątku (czyli całkowicie nie nakazuje/zabrania ale przynajmniej nakierowuje) :D
Back to top
   
ziajek00
Poziom 9
Poziom 9


Joined: 21 May 2005
Posts: 33
Location: Zamość/Lublin/Warszawa

Post#233 24 Nov 2011 11:07   

Re: Przykładowe projekty dla ARMów


Skoro linker się nie zajmuje ustawieniem LSB tablicy wektorów, to chciałbym zapytać się jak to się dzieje?

Zasugerowałem się informacjami na tej stronie http://pygmy.utoh.org/riscy/cortex/led-stm32.html wprawdzie autor, tylko podejrzewa ;)

pzdr.
Back to top
   
Google

Google Adsense


Post# 24 Nov 2011 11:07   





Back to top
   
Freddie Chopin
Poziom 25
Poziom 25


Joined: 12 Dec 2005
Posts: 7288
Location: Zawiercie

Post#234 Post from the author of the topic 24 Nov 2011 11:24   

Re: Przykładowe projekty dla ARMów


Zajmuje się tym linker (na spółkę z kompilatorem oczywiście), ale nie sam skrypt linkera (jak napisałeś w pewnym temacie).

4\/3!!
Back to top
   
ziajek00
Poziom 9
Poziom 9


Joined: 21 May 2005
Posts: 33
Location: Zamość/Lublin/Warszawa

Post#235 24 Nov 2011 13:32   

Re: Przykładowe projekty dla ARMów


Czy chodzi o atrybut interrupt?
Back to top
   
Freddie Chopin
Poziom 25
Poziom 25


Joined: 12 Dec 2005
Posts: 7288
Location: Zawiercie

Post#236 Post from the author of the topic 24 Nov 2011 14:17   

Re: Przykładowe projekty dla ARMów


Nope [; Chodzi o skompilowanie i zlinkowanie projektu z atrybutem -mthumb i ustawionym odpowiednim -mcpu=... .

4\/3!!
Back to top
   
ziajek00
Poziom 9
Poziom 9


Joined: 21 May 2005
Posts: 33
Location: Zamość/Lublin/Warszawa

Post#237 24 Nov 2011 15:43   

Re: Przykładowe projekty dla ARMów


Ok, tak myślałem, ale zbiło mnie z tropu to: http://pygmy.utoh.org/riscy/cortex/led-stm32.html w kontekscie tego co jest w manualu: mianowicie w pliku jest dyrektywa .thumb, jednak bez podciągnięcia wektora o 1 nie działa. Pokombinuję trochę i dopiero będę się pytał :)
Back to top
   
Freddie Chopin
Poziom 25
Poziom 25


Joined: 12 Dec 2005
Posts: 7288
Location: Zawiercie

Post#238 Post from the author of the topic 24 Nov 2011 15:54   

Re: Przykładowe projekty dla ARMów


Dyrektywa .thumb jest dla assemblera. W końcu w przypadku C możesz zdecydować czy ma to być thumb, ARM, czy może kod na dowolną istniejącą platformę, tak w wypadku konkretnej funkcji w assemblerze raczej nie ma wyboru - ona musi być w konkretnym "języku", który dodatkowo podajesz wyżej, bo jednak pewne instrukcje są wspólne tekstowo (mov, ldr, str, b, ...), ale jednak da się je zakodować na wiele sposobów w zależności od "języka".

Niemniej jednak nigdy nie należy ręcznie dodawać jedynek do tablicy wektorów...

4\/3!!
Back to top
   
Freddie Chopin
Poziom 25
Poziom 25


Joined: 12 Dec 2005
Posts: 7288
Location: Zawiercie

Post#239 Post from the author of the topic 10 Jan 2012 13:34   

Re: Przykładowe projekty dla ARMów


Po półtora roku ciszy postanowiłem w końcu odświeżyć nieco przykładowe projekty dla mikrokontrolerów z rdzeniem ARM. Sam nie wiem czemu nie zabrałem się za to wcześniej... Od czasu ostatniej aktualizacji kilka szczegółów konfiguracyjnych w Eclipse uległo zmianie, więc aktualizacja byłą jak najbardziej wskazana (;

Przy okazji do zestawu dołącza jeden nowy przykład przeznaczony dla układów STM32 Connectivity Line - STM32F105x i STM32F107x. Ponieważ w układach tych system zegara jest dużo bardziej rozbudowanych (żeby nie powiedzieć "dziwny") niż w "normalnych" STM32 to funkcja obliczająca cztery parametry (dwa dzielniki i dwa mnożniki) dla dwóch PLLi jest nieco... przydługawa (; No ale za to sama ustawia najwyższą osiągalną częstotliwość przy danym rezonatorze kwarcowym.

Główne zmiany to właśnie dostosowanie projektów do nowej wersji OpenOCD (0.5.0), Eclipse (Indigo SR1) i wtyczki GDB Hardware Debugging (7.0.0.201109151620). Poza tym w projektach dla STM32 dodałem funkcje do konfiguracji trybu pinów GPIO. "Widocznych" zmian jest mało, więc nastąpiła zmiana wersji tylko z 1.2.0 na 1.2.1.

Przykłady cieszą się niesłabnącą popularnością, przy czym najpopularniejszy z nich - stm32_blink_led - pobrany został już prawie 5000 razy! Tak więc zapraszam do pobierania zaktualizowanych wersji z mojej strony ( www.freddiechopin.info ) z działu Download > ARM > Przykłady.

P.S. Tak wiem - strona nie działała przez 2 dni, ale już jest (i miejmy nadzieję, że będzie) OK (;

4\/3!!
Back to top
   
Freddie Chopin
Poziom 25
Poziom 25


Joined: 12 Dec 2005
Posts: 7288
Location: Zawiercie

Post#240 Post from the author of the topic 15 Mar 2012 19:56   

Re: Przykładowe projekty dla ARMów


Hi!

"Robi się" przykład dla STM32F4 - czy ktoś podobnie jak ja uważa, że CCM RAM to idealna lokalizacja dla stosu i generalnie tylko dla niego? Jedyne "wady" tego obszaru to brak możliwości wykonywania z niej kodu (chyba) i brak możliwości dostępu DMA - wydaje się więc, że to całkiem dobre miejsce na stos - raczej nikt rozważny nie będzie wykonywał instrukcji ze stosu i dostęp DMA do stosu chyba tez nie jest koniecznie potrzebny...

Czy może przykłady powinny być max proste i żadnych kosmosów tego typu nie powinno w nich być?

4\/3!!
Back to top
   
Post new topic  Reply to topic      Main Page -> Forum Index -> Microcontrollers Generally -> ARM Microcontrollers -> Przykładowe projekty dla ARMów
Page 8 of 11 Go to page Previous  1, 2, 3 ... 7, 8, 9, 10, 11  Next
Jump to page:
Similar topics
środowisko do programowania ARMów (at91sam7s) (1)
Programowanie ARMów w ADA (18)
Czym uruchamiacie projekty w C dla ATMega32 i wiekszych? (13)
Przykładowe programy dla TMS320F2812 (2)
Przykładowe kody dla CodeVisionAVR (2)
atmel qtouch przykładowe projekty (6)
Programowanie ARMów Philipsa przez RS232 (2)
Czy można używać debuggera do ARMów z CodeBlocks ?? (1)
ARM czy PIC? Dobre książki do ARMów? Asembler? (14)

Page generation time: 0.66 seconds


FAQ || Administrator || Moderators || Widgets and banners || Contact
elektroda.pl topic RSS feed