Raczej nie chodzi o bootloader, a o same mechanizmy kasowania i zapisu pamięci FLASH - one w 99% przypadków muszą być uruchomione na innej szynie, czyli zwykle w RAM. Teraz nie mam czasu, żeby się rozpisywać, wieczorem postaram się napisać jak wrzucić funkcje do RAM. Możesz też poszukać na szybko jak to zrobić w google pod hasłem "ARM ram function"...
Zerknij sobie to pliku .lss i sprawdź następujące rzeczy: 1. czy w ogóle jest tam funkcja SysTick_Handler 2. czy adres funkcji SysTick_Handler zgadza się z adresem widocznym w tablicy wektorów (pod adresem 0x800003c) - adres w tablicy wektorów będzie miał nieparzystą wartość (jeśli np. funkcja SysTick ma adres 0x8001000, to w tablicy wektorów będzie...
Gdzieś była konfiguracja JTAG autorstwa (at)xabean. Sprawiłem, że JTAG działa, to te same piny, które są używane do programowania SPI, więc nie musiałem niczego zmieniać. Wrzuć poniższą konfigurację do pliku bk7321t.cfg i uruchom openocd -f bk7321t.cfg, aby go uruchomić. source [find interface/raspberrypi2-native.cfg] ## https://docs.microsoft.com/en-us/win...
Co do opisu rdzenia to się zgodzę. Faktycznie dużo tam jest. Co do inwencji to niekoniecznie. Skąd ktoś początkujący ma wiedzieć że taka rzecz będzie pisała w opisie rdzenia a nie w opisie konkretnego procesora? Opis VIC w końcu był w opisie procesora Wciąż źle na to patrzysz. LPC2xxx to mikrokontroler. Składa się on z "fabrycznego" rdzenia ARM7TDMI-S...
Udało mi się zebrać kilka logów przez TX2. MCU RX/TX i Pin 8 są odłączone: V:BK7231N_1.0.1 REG:cpsr spsr r13 r14 SVC:000000D3 00401C1C 000033AC IRQ:000000d2 00000010 00401e0c eee356f7 FIR:000000d1 00000010 00401ffc f9c5abad SYS:000000df 0040192c 00000158 ST:00000000 J 0x10000 bk_misc_init_start_type 0 0 prvHeapInit-start...
Mam działające JTAG, to te same piny używane do programowania SPI, więc nie musiałem niczego przepinać. Upuść poniższą konfigurację do bk7321t.cfg i uruchom openocd -f bk7321t.cfg, aby ją uruchomić. source [find interface/raspberrypi2-native.cfg] ## https://docs.microsoft.com/en-us/win...
R5F2136CAN nie posiada pamięci FLASH. Jesteś pewny? Mi coś mignęło szukając datasheet: "R5F2136CANFP 16-BIT FLASH R8C CPU", ten moduł można w boschu kupić czysty i zapropramowany, chyba musi mieć pamięć flash? Choć dla mnie to i tak nie ma żadnego znaczenia. PS. 0FFFFh 0YYYYh 0XXXXh 00400h 002FFh 00000h Internal ROM (program ROM) Internal RAM SFR (Refer...
próbowałem wyłączyć MAM i nic nie pomogło. PLL mam włączone na 60MHz, timingi ustawione na 3, ale próbowałem nawet na 7 i też nic nie dało. Dodam że jak wgrywam program H-jtagiem bez debuggowania, to działa prawidłowo. Gdy zakomentuje konfigurację PLL to można debugować, ale to mnie nie urządza. Dziwną sprawą jest, że gdy CPU działa na 60 MHz to okienko...
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...
Próbowałem obie opcje GDB i w obu przypadkach to samo. No to zrób tak żeby się nie wywoływał Było by to dużo łatwiejsze, jak bym wiedział jaka jest tego przyczyna. Taki sam plik binarny na CooCoxie debugował się bez problemu i nie wchodził najpierw w HardFault. Dlatego mam wrażenie, że to może być coś z OpenOCD. Tym bardziej, że już wcześniej miałem...
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...
Witam. Problem polega na "przesunięciu" pamięci programu pomiędzy tym co pokazuje dissasembler a rzeczywistą zawartością pamięci(używam AVR Studio 4 oraz 5.1). Wklejam kawałek kodu z okna deassemblacji: CALL0x00003CEA 00003C4E NOP Undefined 00003C4F NOP Undefined RJMPPC-0x0000 00003C50 NOP Undefined ST -Y,R10 00003C51 NOP Undefined ST -Y,R11 00003C52...
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:...
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...
Mam podobny If the ARM processor executes a coprocessor instruction, it waits for any external coprocessor to acknowledge that it can execute the instruction. If no coprocessor responds, an Undefined Instruction exception occurs. Dodano po 5 A i teraz zobaczyłem: AIC_ConfigureIT(BOARD_AT45_A_SPI_ID, 0, ISR_Spi); konfigurujesz SPI, aby używało...
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...
Dobra, już wiem o co chodzi. Powinien przypisać wszystko do VICVectAddr4 i VICVectCntl4, bo te rejestry są przeznaczone dla kanału TIMER0. Nadal mam jednak problem z globalnym włączeniem przerwań w CPSR. W pliku startowym jest takie coś (wklejam fragmenty): Mode_USR EQU 0x10 Mode_FIQ EQU 0x11 Mode_IRQ EQU 0x12 Mode_SVC EQU 0x13 Mode_ABT EQU 0x17 Mode_UND...
W takim razie już zupełnie nie rozumiem dlaczego program nie wchodzi w to przerwanie. Jeśli mam: # Enter Undefined Instruction Mode and set its Stack Pointer MSR CPSR_c, #Mode_UND|I_Bit|F_Bit MOV SP, R0 SUB R0, R0, #UND_Stack_Size # Enter Abort Mode and set its Stack Pointer MSR CPSR_c, #Mode_ABT|I_Bit|F_Bit MOV SP, R0 SUB R0, R0, #ABT_Stack_Size #...
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...
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':|...
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...
/* * 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...
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...
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:...
Ok już doczytałem. Dzięki za literaturę! Mogę prosić o potwierzenie/zanegowanie poszczególnych wniosków?: Z tego co zrozumiałem, to moja rozbiegówka zostawia procesor w system mode, rozmiar stosu dla tego trybu to suma pozostałych stosów minus Stack_size zdefiniowany w lpc2148-rom.ld. startup.s ... ldr r0,=_stack msr CPSR_c,#MODE_UND|I_BIT|F_BIT //...
Przesyłam zawartość pliku .s //--------------------------------------... // Headers //--------------------------------------... #include "board.h" //--------------------------------------... // Definitions //--------------------------------------...
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...
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)...
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...
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...
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:...
log po załadowaniu do flash (program nie działa) Reading symbols from c:\up\workspace\diody\bin\StepContro... target remote localhost:3333 0x00000000 in ?? () monitor reset monitor reset halt monitor gdb_breakpoint_override hard Loading section .fixed, size 0x3e40 lma 0x100000 load Loading...
To jest startup: .section .vectors, "ax" .code 32 .align 0 .global _vectors .global reset_handler /***************************************... Exception Vectors ****************************************... _vectors: #ifdef STARTUP_FROM_RESET ldr pc, [pc, #reset_handler_address...
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, 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);...
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:...
Witam, mam problem z implementacją projektu z załącznika (docelowo WinArm/miganie dioda) na CrossWorksie i mikrokontrolerze AT91SAM7X256(konkretnie SAM7-EX256 olimex.dev). Przy linkowaniu dostaje blad : Building “faty_z_ksiazki” in configuration “ARM Flash Debug” — 4 errors Assembling Cstartup.S Linking faty_z_ksiazki.elf...
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)...
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__...
Hmmm. To ma byc adres ktorego ze stosow? I jezeli ten adres byl by zly to jak do tego ma sie kwestia flagi -nostartfiles? /** * File: startup.s * * Project: STR91x Eclipse demo * * Description: This module performs: * - Flash remapping. * - Stack pointer intialization for each mode. * - .bss section initialization. * - Branches to main. * * * Created:...
Witam. Buduję urządzenie oparte o zestaw uruchomieniowy SAM7-P256 Olimex'u. Generalnie wszystko działało, ale dosyć mocno je ostatnio testowałem (zmiany, programowanie, testy, poprawki i tak w koło) i nagle przestało.. Tzn. najpierw wyskoczył mi jakiś błąd podczas próby programowania przez jtag, później się udało, ale program działał dużo wolniej niż...
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...
Witam, Dostalem oscyloskop DSO-1062D. Niestety okazuje się, ze nie działa, wieszając się na ekranie startowym. Po podlaczeniu przez UART widać, ze linux zatrzymuje się z bledem "Kernel panic - not syncing: Attempted to kill init!"(poniżej caly log). Zdaje się , ze jedna z partycji jest uszkodzona (prawdopodobnie Rootfs). Mogę za to uzywac botloadera...
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....
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...
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...
Zwracam pliki, dodalem rsrc. Jeśli zmieniasz myszką wymiary okna odświeżanie żle działa. Pozdrawiam Dzięki. Coś mi nie wszystko chce działać. program12.asm asembluje się do .obj, natomiast próba asemblacji p22.asm skutkuje komunikatem: " Assembling: p22.asm p22.asm(1) : error A2013: .MODEL must precede this directive p22.asm(2) : error A2034: must...
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...
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, 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:...
undefined instruction interrupt manual instruction undefined identifier
lodówki bosch opinie generator sprzężeń pomiar pojemności kondensatorów
Kia Ceed I ED 2006-2012 – instalacja szyb elektrycznych, modernizacja, naprawa podnośników John Deere GT 242 KR – wymiana łożyska napędu, typy łożysk, instrukcja krok po kroku