A jak uruchomić przerwanie FIQ? Na początku zmieniłem atrybut (jak się później okazało nie zmienia to niczego w programie (porównałem pliki BIN)): static void t0isr(void) __attribute__ ((interrupt("FIQ"&... Później zmiana w rejestrze VIC: VICIntSelect = 0x00000010; //t0isr = FIQ I na tym zakończyłem zmiany,...
Dobra, zrozumiałem swój błąd <: Może taka tablica wektorów - też jest w C <: static void __vectors(void) __attribute__ ((used, naked, section(".vectors")... static void __vectors(void) { asm volatile( " ldrpc, Reset_Vector \n"// "Reset" vector " ldrpc, Undefined_Vector...
Witam, Mam problem z debugowanie procesora LPC2478. Środowisko: postawione zgodnie z tutorialem ze strony Freddiego Chopinna czyli Eclipse (helios edition with HDT hardware debugging) + OpenOcd + Code Sourcery Lite edition Procesor: ARM NXP LPC2478 z kwarcem 12MHz Aplikacja: Na tym etapie mrugająca diodka na timeocie opartym o przerwanie timer0, PLL...
pliki vectors.s i startup.s mam od Ciebie /***************************************... * author: Freddie Chopin, http://www.freddiechopin.info/ * file: vectors.S * last change: 2010-04-08 * * chip: LPC2103 * compiler: arm-none-eabi-gcc (Sourcery G++ Lite 2009q3-68) 4.4.1 * * description:...
Chodzi tylko o zapis do EOI_R? Czy o coś jeszcze? Chodzi o specjalny sposób powrotu i koniec - powrót z funkcji przerwania jest inny niż ze zwyczajnej i w C się tego nie da zrobić "ręcznie". Mógłbym użyć również LDR pc,#0xFFFFF100 żeby bezpośrednio wskazać ten adres? Nie mógłbyś, bo taki format tej instrukcji nie istnieje. Nie kombinuj - robi się to...
no wlasnie. to przeciez kluczowa sprawa. w pliku startup musi byc zadeklarowany wektor dla IRQ w tej oto postaci: ldr PC,reset_vector // reset exception ldr PC,undef_vector // undefined instruction exception ldr PC,swi_vector // software interrupt exception ldr PC,prefetch_abt_vector // prefetch abort exception ldr PC,data_abt_vector // data abort exception...
Od trzech dni bawię się ARM AT91SAM7x256 i RTOS. O RTOS nie wiem nic. Analizując program z www.freertos.org doszedłem co gdzie zmienić żeby dane które chce pojawiały sie w przeglądarce na PC, może ktoś zna odpowiedzi na te pytania: 1. RTOS w AT91SAM i w ogóle "system czasu rzeczywistego" w mikrokontrolerach polega na wywoływaniu wewnętrznego przerwania...
/* * Some defines for the program status registers */ ARM_MODE_USER = 0x10 /* Normal User Mode */ ARM_MODE_FIQ = 0x11 /* FIQ Fast Interrupts Mode */ ARM_MODE_IRQ = 0x12 /* IRQ Standard Interrupts Mode */ ARM_MODE_SVC = 0x13 /* Supervisor Interrupts Mode */ ARM_MODE_ABORT = 0x17 /* Abort Processing memory Faults Mode */ ARM_MODE_UNDEF = 0x1B /* Undefined...
Tablice wektorów mam z przykładów ze strony [url=http://www.freddiechopin.info/]http... Nic w niej nie zmieniałem i wersja 6.1.1 działa dobrze a 7.1.0 wiadomo Tak wygląda tablica wektorów: [syntax=cpp]void (* const vectors[])(void) __attribute__ ((section(".vectors"))) = { (void (*)(void))&__main_stack_end,// Main stack end address...
Przesyłam zawartość pliku .s //--------------------------------------... // Headers //--------------------------------------... #include "board.h" //--------------------------------------... // Definitions //--------------------------------------...
Witam ponownie. Mam jeszcze pytanie. Ponieważ chciałem dodać obsługę: ETH_WKUP_IRQHandler i ETH_IRQn. Więc w pliku vaectors.c dodałem takie linijki: [syntax=c] // ETH Ethernet global Interrupt void ETH_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler"))); // ETH_WKUP Ethernet Wakeup through EXTI line Interrupt void ETH_WKUP_IRQHandler(void)...
tak wyglada przykladowy startup dla LPC, w ktorym nie ma zadnych nadmiarowych rzeczy w zasadzie - samo minimum: /***************************************... * © 2008 Freddie Chopin * * file: startup.s * last update: 19.04.2008 * * processor: LPC2148 * compiler: ARM-ELF-GCC * * description:...
Dzięki freedi miałeś racje. Patrzyłem na kolejność przerwań w tabeli f0 ale nie na adresy. Aby zapełnić luki i poprzesuwać adresy dodałem brakujące reserved handler Dodano po 11 Teraz tylko muszę rozwiązać skąd mi przerwań multum nadchodzi i w nierównych odstępach od timera. Bo pwm wyprowadzone jest na jedną diodę a przerwanie zmienia stan innej diody....
Dla odmiany, teraz przy kompilacji przez arm-elf-g++ dostaję: src\main.c||In function 'int main()':| src\main.c|43|warning: statement has no effect| src\main.c|46|warning: statement has no effect| src\main.c|31|warning: unused variable 'i'| src\main.c|33|warning: unused variable 'b'| crt.o||In function `Undef_Addr':|...
Witam, Bazuje na projekcie ze strony Freddie Chopin dla stma F4 z dodanymi bibliotekami STM32F4xx_StdPeriph_Driver. Zdefiniowałem sobie konfigurację timer'a w następujący sposób: [syntax=c]void Timers_Config(void){ RCC_APB2PeriphClockCmd(RCC_APB2Periph_TI... ENABLE); NVIC_InitTypeDef NVIC_InitStruct; NVIC_InitStruct.NVIC_IRQChannel = TIM1_CC_IRQn; NVIC_InitStruct.NVIC_IRQChannelPreemptio...
Witam! Sory ze odpisuje dopiero teraz ale mialem problemy z kompem, swoja droga dosyc ciekawe (komputer zalaczal sie tylko na kilka sekund, zanioslem do serwisu a tam wspanialomyslni panowie serwisanci stwierdzili - plyta glowna do wymiany, wybulilem wiec 200 na nowa, podlaczylem i to samo, pozniej sam doszedlem do tego ze wlacznik komputera zwieral...
Witam, jestem początkujący w programowaniu ARMów, więc proszę o wyrozumiałość. Mój problem polega na tym, że program nie wskakuje do przerwania IRQ. Oczywiście mam wyzerowane bity I_BIT i F_BIT w CPSR, ustawionego VIC'a i w startupie skok do VICAddress. Pracuję w środowisku Eclipse + najnowsze yagarto, czyli: Binutils-2.19.1 Newlib-1.17.0 GCC-4.3.3...
Wywala sie przy wyjsciu z przerwania 0x000013ac <ADC_IRQHandler+92>: pop {r4, r5, r6, pc} BUG: couldn't calculate PC of next instruction, current opcode was 0x5c002000 should never reach this point Dorzuce jeszcze moj plik startup: /* Startup code for STR91x ARM-based microcontrollers based on STR912 startup source and some examples from www.stm.com...
Witam wszystkich. Uzywam Eclipse + OpenOCD (0.9.0) + GCC. Do tej pory używałem STM32F103 (Cortex-M3), a teraz przesiadłem się na STM32F373 (Cortex-M4). Wziąłem ze starego programu skrypt linkera, startup, vectors.c i posklejałem do kupy odpowiednio je modyfikując. Program generalnie odpala się, mogę sterować GPIO. Następnie spróbowałem uruchomić SysTicka....
Witam Próbowałem załączyć pętlę PLL na ARMie. Nie chce mi się załączyć i nie przechodzi przez warunek sprawdzania w PLLSTAT (while( !( PLLSTAT & (1 << 26) ) );). Przeglądnąłem dokumentacje i przykładowe kody. Ale dalej nie działa :) Oscylator 12MHz Fcc0 288MHz Podzielniki N=1 M=12 (do rejestrów wpisuje wartości mniejsze o 1) Spodziewane CCLK...
A na jakiej podstawie stwierdzasz, że nie działa? To programik do prostego migania dioda. Kiedy podlaczam do PA11 diode, to nie miga niestety. W keilu, przy tym samym kodzie migala. Co do linkera, to dodaj tam linijki: . = ALIGN(4); *(.text.*); zaraz za sekcją .text i będzie ok. 4\/3!! Serdecznie dzieki :)!!! Edit: No i po probie uzycia vsprintf dostaje:...
Witam ! No wrzuciłem dwa bo tak mam jeden dla ROM drugi dla RAM co do startup to już wrzucam. /*--------------------------------------... //*- ATMEL Microcontroller Software Support - ROUSSET - //*-------------------------------------... //* The software is delivered "AS...
Mój plik CStartup.S wygląda następująco: /*--------------------------------------... //*- ATMEL Microcontroller Software Support - ROUSSET - //*-------------------------------------... //* The software is delivered "AS IS" without warranty or condition of any //* kind,...
Witam, Mam problem z uC AT91SAM7z256. Używam kompilatora WinARM. Oczywiście chodzi o przerwania. Przejrzałem kupę wątków na elektrodzie i doszedłem tylko do tego, że błąd może tkwić w startupie. Znalazłem wiele odpowiedzi co w nim zmienić ale akurat nie do tego procka i wersji tego pliku nikt się nie wypowiadał (chyba że coś przeoczyłem). Mój problem:...
Witam, po małej przerwie, niestety mój problem jest nadal aktualny, wkleiłem podany kod i to całkowicie wywaliło program. to mój plik startowy, prosze o jakąś rade .global _etext // -> .data initial values in ROM .global _data // -> .data area in RAM .global _edata // end of .data area .global __bss_start // -> .bss area in RAM .global __bss_end__...
Czyli pomiary wykazałyby to co podejrzewałem, czyli uszkodzenie pinu. Ad 1. When the SM2..0 bits are written to 011, the SLEEP instruction makes the MCU enter Powersave mode. This mode is identical to Power-down, with one exception: If Timer/Counter2 is clocked asynchronously, i.e. the AS2 bit in ASSR is set, Timer/Counter2 will run during sleep. The...
Witam, Od niedawna jestem świeżym posiadaczem płytki testowej dla LPC2148 (z Kamami) i powoli rozgrywam tajniki tych mikroprocków. Wcześniej sporo pisałem na AVR'ki. Mam problem z funkcją sprintf()/iprintf(). Otóż wszystko działa poprawnie, kiedy wywołuję np. taki kod: int a=2; char buf[16]; sprintf(buf, "A: %d", a); LCDWrite(buf);...
Kolejnym krokiem jaki zrobilem to zaladowalem pod eclipcs program demosntarcyjny dla FreeRTOS: [url=http://www.freertos.org/portlpc2368... LPC2368 with Eclipse and GCC development tools . Z kompilacja nie bylo problemow. Wgralem plik wynikowy RTOSDemo.elf do pamieci Flash przy pomocy openocd. Wystartowalem program demonstracyjny z debuggera...
Dzięki za startupik jest fajnie opisany i napewno sie przyda z tym, że nie rozwiązuje on jeszcze mojego problemu. Chodzi o to, że w keilu funkcje przerwań wywolywane są poprostu poprzez określenie typu: np.: void podpr_obsl_przerw (void)__irq irq jest tu chyba jako makro asemblerowe tylko skąd to nie bardzo wiem pewnie ktoś mnie oświeci :D a teraz jak...
Optymalizacja - zero boot.s MEMORY { flash: ORIGIN = 0x00100000, LENGTH = 256K ram : ORIGIN = 0x00200000, LENGTH = 64K } __stack_end__ = 0x00200000 + 64K - 4; SECTIONS { . = 0; startup : { *(.startup)} >flash prog : { *(.text) *(.rodata) *(.rodata*) *(.glue_7) *(.glue_7t)...
Witam probuje skompilowac napisany uprzednio i dzialajacy program do RAMu. Niestety nie dziala mi obsluga wyjatkow(prawdopodbnie chodzi o remap wektorow jednak nie udalo mi sie znalezc informacji jak tego dokonac dla tego konkretnego procesora) oraz funkcja atoi(po przejzeniu objdumpa wydaje sie znajdowac pod wlasciwym adresem:/). Zastosowany plik startupu:...
Dobra to tak oryginalny plik linkera wygląda tak: /*--------------------------------------... /*- ATMEL Microcontroller Software Support - ROUSSET - */ /*--------------------------------------... /* The software is delivered "AS IS" without warranty or condition of any...
Witam, Frieddie dzięki za odpowiedź. Mam kolejny problem. W eclipsie wyskakują mi takie błędy: http://obrazki.elektroda.net/65_12610988... http://obrazki.elektroda.net/14_12610988... W projekcie używam takich plików: startup.c /***************************************... * Copyright (c) 2009...
Troszkę irytował mnie kod startowy jaki zaproponował KEIL dla mojego mikrokontrolera LPC2318. Postanowiłem więc okroić go do niezbędnego minimum. Z tego co poczytałem dokumentację, wynikało iż najważniejsze jest ustawienie adresów stosów dla poszczególnych wyjątków, ustawienie sterty (jeżeli takowej będziemy używać), ustawienie mapowania pamięci, inicjalizacja...
PLL nie tykałem tutaj jest plik // Standard definitions of Mode bits and Interrupt (I & F) flags in PSRs Mode_USR EQU 0x10 Mode_FIQ EQU 0x11 Mode_IRQ EQU 0x12 Mode_SVC EQU 0x13 Mode_ABT EQU 0x17 Mode_UND EQU 0x1B Mode_SYS EQU 0x1F I_Bit EQU 0x80 /* when I bit is set, IRQ is disabled */ F_Bit EQU 0x40 /* when F bit is set, FIQ is disabled...
Witam, Zaczynam właśnie przygodę z programowaniem ARM7. Zaopatrzyłem się w książkę "LPC2000 w przykładach" Emila Stawskiego. Książka ta opisuje proces programowania w środowisku uVision3 połączonym z darmowym kompilatorem GNUARM. Moje środowisko programistyczne: - uVision4 (wersji 3 już nie można pobrać), - GNUARM, - FlashMagic Ale do rzeczy... Ściągnąłem...
To znaczy co masz na myśli? Projekt stworzyłem w µVision który wygenerował taki plik startup: [syntax=asm];/**************************... ;/* STARTUP.S: Startup file for Philips LPC2000 */ ;/**************************************... ;/* <<< Use Configuration...
Program jest dosyć duży, ale ok, wrzucę cały main.c Using built-in specs. COLLECT_GCC=avr-gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/avr/4.8... Target: avr Configured with: /build/avr-gcc/src/gcc-4.8.2/configure --disable-cloog-version-check --disable-install-libiberty --disable-libssp --disable-libstdcxx-pch --disable-libunwind-exceptions...
Plik Vectors.S załączam. Chętnie przeczytam co o nim sądzisz. [syntax=c]// #=======================================... // # // # vectors.S // # // # ARM exception vectors (Olimex LPC-P2138) // # // # // # Copyright HighTec EDV-Systeme GmbH 1982-2007 // # // #=======================================...
Halo, cześć. Świątecznie i noworocznie: Jak zrozumieć panic full log w iPhone i iPad Było już trochę o tym na forum jakiś czas temu ale ciągle sporo w tym temacie nieporozumień. Rozwiewam więc niedomówienia i mity (o znikających elementach), podpowiedziach w stylu "powiedz mi jak wymienić ten thermalmonitord" - przy okaji: Thermal Monitor Daemon to...
Piszę na tym samym procesorze, tylko że w gcc. Mam zamiar wywołać zwykłe IRQ, jednak nie działa. Podejrzwam że odpowiada za to w startupie: .equ I_Bit, 0x80 /* when I bit is set, IRQ is disabled */ .equ F_Bit, 0x40 /* when F bit is set, FIQ is disabled */ # Enter IRQ Mode and set its Stack Pointer MSR CPSR_c, #Mode_IRQ|I_Bit|F_Bit MOV SP, R0 SUB R0,...
Witam. Właśnie staram się zrobić mysz komputerową na atmedze 32 za pomocą biblioteki V-USB. Program testowałem na płytce rozwojowej z kwarcem 16MHz, atmegą 32 i wszystko działało. Po przeniesieniu się na moją płytkę z kwarcem 12MHz i przekopiowaniu kodu, na wyjściach D+ i D- mikrokontrolera nic się nie pojawia, D- stan wysoki, D+ niski. Oczywiście zmieniłem...
Witam, załóżmy że chcę wykonać inicjalizację systemu do obsługi FIQ z EINT2. Powiedzmy, że dysponuję takim vectors.S: [syntax=c] // #=======================================... // # // # vectors.S // # // # ARM exception vectors (Olimex LPC-P2138) // # // # // # Copyright HighTec EDV-Systeme GmbH 1982-2007 // # // #=======================================...
Witam, w projekcie wykorzystuje plik startowy generowany automatycznie (listing poniżej). [syntax=asm] ;/* STARTUP.S: Startup file for Philips LPC2000 */ ;/**************************************... ; Standard definitions of Mode bits and Interrupt (I & F) flags in PSRs Mode_USR EQU 0x10 Mode_FIQ EQU 0x11 Mode_IRQ EQU 0x12 Mode_SVC...
Proszę napisz gdzie to widzisz (kod, linia) Dodano po 1 Zmieniłem cześć kodu i chyba dobrze to wymyśliłem, ale teraz kompilator krzyczy mi ze nie ma definicji dla irq_handler Why? ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;... ;; ;; Part one of the system initialization code, ;; contains low-level ;; initialization. ;; ;; Copyright 2006 IAR Systems....
Witam Napisałem kawałek kodu do obsługi przerwań IRQ Zasada miała być taka po wywołaniu przerwania (zwarcie PIO_PA2 do masy) miał zmienić się stan diody na PIO_PA27. Niestety program nie działa poprawnie (przerwanie nie jest wykonywane). Tytułem wstępu to tyle. Poniżej kod, który powinien realizować przerwania. main.c http://obrazki.elektroda.pl/7449929900_1...
Witam Dopiero zaczynam przygodę z ARMami i mam następujący problem. Kupiłem zestaw uruchomieniowy mini2440 i dostałem do niego plik startowy napisany w asemblerze ADS. Ja używam Eclipse ponieważ jest to darmowe środowisko. Problem polega na tym że eclipse nie rozumiem asemblerowych komend z ADS'a. Chciałbym prosić kogoś kompetentnego o pomoc w przetłumaczeniu...
Witam Wątpie, że mi ktoś pomoże ale cóż zależy spróbować. Nie mogę włączyć obslugi przerwań w moim procesorze. wiem że kod jest napisany prawidłowo gdyż testowalem na innym kompilatorze. Chodzi o plik startup, którego w sumie nie rozumiem. A może ktoś zna jakieś źródła wyjaśniające jak pisać takie pliki? Ucze się z książką "Mikrokontrolery at91sam7"...
Witam Podczas podłączenia urządzenia do USB na pc dostaje komunikat "Nie rozpoznano urządzenia usb". Po zdebagowaniu programu zauważyłem ze program nie wychodzi z pętli [syntax=c] while (!pCDC.IsConfigured(&pCDC));[/syntax] która jest zaimplementowana w następujący sposób: [syntax=c]static uchar AT91F_UDP_IsConfigured(AT91PS_CDC pCdc) { AT91PS_UDP pUDP...
Witam, natknąłem się na następujący problem: Probuję debuggować w środowisku Ethernut dla procesów arm (SAM7X256 jesli chodzi o ścisłość). Niemniej jednak postępując zgodnie z instrukcją umieszczoną na stronie yagarto: http://www.yagarto.de/howto/debugnutos/i... nie mogę skopilować przykładu httpd. Otrzymuję kominikaty: C:\ethernut\nutapp\httpd>make...
undefined instruction manual instruction undefined identifier
schematy laptopów poszukiwane komora rezonansowa cewka pompa
dobre sklepy elektroniczne online dobre sklepy elektroniczne
Parametr załączania palnika w piecu Termet Silver Lokalizacja termostatu w pralce Beko - poradnik