To raczej nie skrypt linkera, a zewnętrzny program, który przetworzy obraz binarny, który masz zapisywać - w każdym środowisku istnieje możliwość wywołania takiego programu, zwykle pod nazwą "post build step".
Witam, Czy wie ktoś jak w WinARM włączyć obsługę i ustawić rozmiar zewnętrznej pamięci RAM ? Nie chodzi mi o konfigurację rejestrów, tylko ustawienie środowiska tak aby "widziało" więcej RAMu ogólnego przeznaczenia. Pozdrawiam Zmodyfikuj skrypt linkera, wskaż linkerowi nowy obszar pamięci i przypisz odpowiednio sekcje
Kompilator ładuje tam inicjalizatory dla zmiennych w pamięci zewnętrznej. Aby tego uniknąć, musiałbyć zmienić lekko skrypt linkera i do startupa dopisać kopiowanie danych z flasha do tej pamięci, tylko że najpierw trzeba by ją włączyć <: Dane z sekcji .data mają ustawione adresy w RAM, ale ładowane są do FLASH (> ram AT > rom), dlatego tam...
Pamiętaj że dane w sekcji .data muszą być zainicjalizowane, a bss wyzerowane, aby być zgodnym ze standardem C. Czyli po wlaczeniu tej pamieci musisz napisac sam funkcję, która te dane zainicjalizuje. Inaczej jak sobie napisałeś jakąś zainicjalizowana zmienną globalną to oczywiście ona nie będzie zainicjalizowana. Dodatkowo do takich operacji z sekcjami,...
Dramat to wklejanie czyjejś roboty bez zrozumienia co się robi :D, więc na razie wziąłem ten twój skrypt linkera od F4 i walcze z nim. Zmieniłem ram, dodałem sdram i nie wiem jak zrobić stertę w sdramie. Bo - jak ja to rozumiem - malloc z dużymi tablicami potrzebuje, bym stertę miał w zewnętrznym ramie. Wrzucam Ci mój skrypt linkera. Jeśli masz chwilę...
(może nie do końca początki bo coś już umiem) chyba jednak początek:). Uzupełniając powyższą odpowiedź należy wrócić do podstaw. AVR i RAM mają zupełnie różne architektury. AVR ma rozdzielone przestrzenie adresowe a ARM ma jednolitą. Dlatego w AVR musisz wykonywać jakieś magiczne sztuczki, aby odczytać wartość z pamięci programu, a w ARM nie. W ARM...
W przypadku drugim nie zmieniaj adresu RAMu na zewnętrzny, tylko podejdź do sprawy kompleksowo 1. W skrypcie linkera dodaj nowy obszar pamięci: MEMORY { rom (rx): org = 0x08000000, len = 128k ram (rwx): org = 0x20000000, len = 20k ext_ram_0 (rwx): org = ?, len = ? } 2. Poniżej dodaj stosowne symbole początku,...
Mógłby ktoś podać link do jakiegoś projektu w Microchip Studio Trzy lata temu pisałem ci, że to nie jest kwestia IDE, lecz konfiguracji linkera. Jeśli chcesz, aby dodatkowa pamięć była alokowalna dla zmiennych globalnych, musisz zmienić skrypt linkera. Jeśli ma byc widoczna dla zmiennych alokowanych na stercie lub stosie to należy tylko zmienić wartości...
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...
W między czasie, patrzę na przykłady z STM32 i nie mogę się nadziwić.... no cóż czasem człowiek potrafi skomplikować proste sprawy... ja piszę tak: FSMC_Bank1->BCR3 = FSMC_BCR3_MBKEN | FSMC_BCR3_FACCEN | FSMC_BCR3_WREN ST tak: FSMC_Bank1->BTCR O zmiennych w innych obszarach jest już conajmniej kilka tematów... tylko poszukać... 4\/3!! Czyli nie ma...
grko napisał: IMO nieprawda a czy Xmegi przypadkiem nie mapuja przypadkiem eepromu do data memory ? Tak, w tym przypadku można włączyć mapowanie EEPROM do SRAM, co ma też tą zaletę, że można programować EEPROM stronami (co bywa nawet 32x szybsze niż programowanie komórka, po komórce). Wiem, że w niektórych uC występuje interfejs XMEM, który obsługuje...
Czegoś tutaj nie rozumiem. Mówisz, że umiesz programować a borykasz się z jakimiś podstawowymi problemami i to może nawet nie natury programistycznej a zwykłej logiki. Zastanów się, skoro podczas przepisywania programu z pamięci zewnętrznej do FALSHa procka wystąpił jakiś błąd to przecież na boga nie będzie zgadzać się suma kontrolna i boot nie powinien...
Mam taki problem. Próbuję zrozumieć poniższy zapis, ale brakuje mi wystarczającej wiedzy mimo posiłkowania się dokumentami z internetu. Otóż mam poniższy kod: [syntax=c] extern unsigned long __stack_start__; void __attribute__ ((weak)) isrReset(void); __attribute__ ((used, section(".isr_vector"))) void(* const gVectors[])(void) { (void (*)(void))(&__stack_start__),...
CMSIS Core - to tylko startup i system i bodajże core_cm3 + skrypt linkera. Zaś ty korzystasz z pełnego CMSIS i to jego deklaracji brak. Rozwiń tą gałąź "Device"... Definicje są (dodałeś sam pewnie), bo ci przechodzi kompilacja. Błąd jest w momencie linkowania.
pobralem najnowsza paczke Wersja? :> Wklejony przeze mnie kawałek pochodzi z core_cmFunc.h V4.30 (20 oct. 2015) z CMSIS 4.5. Makefile nie jest Ci potrzebny skoro wybrałeś wtyczkę do Eclipse'a. Opcje sobie "wyklikasz" wedle uznania w ustawieniach projektu. Modyfikacja skryptu linkera to najpewniej tylko zmiana wielkości pamięci zależnie od posiadanego...
Witam :) Wiem, że na forum jest pełno tego typu tematów, jednak w żadnym nie znalazłem leku na mój, jak przypuszczam, trywialny problem. Walczę z konfiguracją tego zestawu oraz programatora Versaloon od 3 dni, ale zasadniczo nadal stoję w miejscu. Z grubsza konfigurację wykonałem według http://obrazki.elektroda.pl/9931561600_1... w innym...
(at)michalko12: Mógłbyś jeszcze coś napisać o Twoim pomyśle? Raczej chodziło o dogrywany kod, bo do całego "wsadu" i tak musiałby być jakiś bootloader we flash no i odpowiednia ilość RAMu, ale też jest to do ogarnięcia. W takich przypadkach podstawą jest dobre panowanie nad skryptami linkera i ich zgranie z kodem źródłowym. Chyba że chodzi o możliwość...
(at)Piotrus_999: Tak, wiem, czytałem, ale najprościej jest sprawdzić, czy przerwanie działa i czy do niego wchodzi (po prostu led'a zapalić w przerwaniu, tyle). Po wywaleniu SW4STM i zainstalowaniu czystego Eclipse i skonfigurowaniu według tutoriala od kolegi Freediego przerwania od linii zewnętrznych śmigają aż miło. Źródłem przerwania jest ekran dotykowy...
Ze względu na niemożność umieszczenia pod dowolnym adresem tablicy wektorów przerwań takie działanie jest praktycznie niemożliwe. Niezależnie od tego wymagałoby sporej żonglerki skryptami linkera. Napisz lepiej co chcesz osiągnąć, będzie łatwiej doradzić. Chodzi ci o to, aby się zabezpieczyć przed sytuacją, w której nadpisany program jest błędny i nie...
Utworzyłem nowy projekt, który korzysta z zewnętrznego, nie ze "standardowego" skryptu linkera tworzonego przez LPCXpresso. Kompilacja przebiega prawidłowo lecz w pewnym momencie zatrzymuje się z komunikatem Invoking: MCU C Compiler arm-none-eabi-gcc -D__REDLIB__ -DDEBUG -D__CODE_RED -DCORE_M4 -D__USE_CMSIS=CMSIS_CORE_LPC407x_8x -D__LPC407X_8X__...
Czyżby? Czy dla AVR ktokolwiek przejmuje się skryptami linkera, startupem, tablicą wektorów i Makefilem? Przecież dla tej platformy jest DOKŁADNIE TAK SAMO jak dla ARM, a jakoś nikomu nawet na myśl nie przyjdzie zajmować się tymi plikami - każdy korzysta z gotowców zawartych w pakiecie avr-gcc. Te pliki tam fizycznie są, nikt nie zajmuje się tym jak...
Ten skrypt linkera to taki "cięższy przypadek" do dopasowania z moimi syscalls, bo na moje oko ma stosy nieco rozrzucone wszędzie gdzie się da... Nie jestem Ci w stanie zdalnie pomóc, ponieważ z opisów wynika że ta płytka ma część stosów w pamięci wewnętrznej, a część w pamięci zewnętrznej, a niezbyt mam czas się zastanawiać co się tam dzieje... Na...
Pojawił mi się problem którego nie mogę rozgryźć. STlink żyje pod OCD i pięknie działa podłączany kabelkami z płytki DiscoverySTM32L do zewnętrznego układu z prockiem STM32F103 a także STM32F217. Bez żadnego problemu z pod eclipsa przez SWD ładuję i debuguję sobie jakąś tam swoją aplikacyjkę. Oryginalny programik demonstracyjny płytki discovery(z której...
(at)BlueDraco: Zgadzam się z Tobą i też się zastanawiam na czym polega ta dziwna maniera polecania zabytkowych, 8-bitowych AVR'ów? Pomijając ich ograniczenia strukturalne, za każdym razem wchodząc na Forum widzę problemy typu: jaki programator, programator nie działa, błędy zapisu, program jest dobry, a jednak nie działa... i tysiąc tego typu problemów...
Taki kod jest po prostu bezsensowny i tyle. Kod z inicjalizacji _jest_ sensowny i _działa_. Jak napiszesz: #define STALA 12345 char* ptr=&STALA; to wydaje Ci się, że to jest poprawne? To nie jest poprawne i nie skompiluje się z prostego powodu - twoja stała jest dyrektywą preprocesora, czyli zostanie rozwinięta jeszcze przed kompilacją programu. Kompilator...
Do wypowiedzi Freddiego dorzucę tylko, że to darmowe oprogamowanie jak się wie co wpisać w skryptach umożliwia obsługę znacznie większej ilości sprzętu, na znacznie większej ilości systemów operacyjnych, ze znacznie większą ilością opcji. Niesie to za sobą jednak konieczność dopasowania ich do swoich potrzeb. Moim zdaniem różnice pomiędzy CS a yagarto...
W celu rozrywkowo-edukacyjnym piszę własny OS na mcu. Nie ma być to kolejny mcu-RTOS bo większość tych przeznaczonych na mcu jest nudne i nie mają np. separacji kernel-user, pamięci wirtualnej, ochrony zasobów, dynamicznego uruchamiania binariów, stronicowania, swapa i innych interesujących od strony dydaktycznej mnie rzeczy. Projekt oparłem o PIC32MZ...
Witam wszystkich zainteresowanych, w piątek będąc jeszcze w pracy opisałem problem, a przez weekend nie miałem możliwości usiąść choćby na chwilę w domu do problemu, instytucja piękniejszej połówki skutecznie o to zadbała ;) Co do problemu: - Zestaw .c i .h ze zmiennymi jest generowany z zewnętrznego narzędzia którego wolelibyśmy za bardzo nie modyfikować...
Niektóre narzędzia pozostawiają wiele do życzenia. Można mieć setki opcji, ale jeśli te opcje nie są opisane, albo opisane lakonicznie, bo narzędzie nie pozwala na obszerny komentarz, to tak naprawdę niczego to nie ułatwia. Trzeba się domyślać co autor miał na myśli, albo szukać gdzieś w zewnętrznej dokumentacji, jeśli w ogóle ona istnieje. Jeszcze...
No tak, kwestie w których musiałbyś mi przyznać rację sprytnie ominąłeś :) Niech tak będzie. To nie tak :). Po prostu miałem mało czasu na napisanie postu i musiałem go trochę skompresować. tmf, ja bardzo sobie cenię Twoją wiedzę w dziedzinie AVR 8-bit, naprawdę. Ja po prostu chciałem podyskutować, wiesz, żeby się coś działo ;). Nie miało być napastliwie,...
Dziś zrobiłem kolejny test. Cały program zmniejszyłem tak aby załadować go do pamięci SRAM. Żadnych peryferiów, żadnych timerów, żadnych przerwań. Procek skonfigurowany na 200MHz (198.656). W main'ie tylko tyle: Dodano po 1 I jeszcze jeden test. Uruchomiłem timer na 1Hz w którym wyświetlam wartość zmiennej inkrementowanej w pętli głównej - czyli taki...
W drugim kwartale 2018 Avnet Silica oraz NXP przeprowadziły wspólnie serię szkoleń w Europie Środkowej, których celem było zaprezentowanie możliwości nowej rodziny układów, stanowiących pomost między mikrokontrolerami oraz mikroprocesorami. Ostatnie zajęcia odbyły się w jednym z hoteli w okolicach Krakowa (Modlniczka). Poniżej prezentuję krótką relację...
Mikrokontrolery STM32H7 posiadają kilka domen zasilania i kilka bloków pamięci. Niby nic wielkiego, ale sprawa trochę się komplikuje kiedy trzeba korzystać z DMA przy obsłudze peryferiów i dość dużych struktur pamięci. https://obrazki.elektroda.pl/4349869800_... Pamięć danych jest dostępna jako (zielone obszary): DTCM - Pamięć danych...
Wydaje mi się, że mam problem z poprawnym umieszczeniem w pamięci ram struktur zawierających ramkę obrazu. Pierwsza z nich to: [syntax=c] static struct framebuffer { int w; int h; int bpp; int ready; uint8_t pixels[]; }*fb = (struct framebuffer *) &_fb_base; [/syntax] Ona będzie przechowywała co najmniej 320x240*2 bajtów w tablicy pixels. Oraz druga:...
Mam na pewno sterownik WinUsb.sys. Poniżej cały skrypt linkera: Dodano po 10 Zapomniałem dodać, że używam zewnętrznego ST-linka dołączonego do płyty Nucleo-f103rb. Mam drugą taką płytkę i gdy teraz ją podłączyłem ale skorzystałem z wbudowanego ST-linka wszystko zaczęło działać prawidłowo. Co w takim razie może być nie tak?
Tworzenie aplikacji użytkownika w C++ ma wiele zalet, więc nie jest zaskakujące, że język ten staje się coraz bardziej popularny wszędzie, w tym w systemach opartych na małych mikrokontrolerach. Projekt „mbed” jest w pełni skoncentrowany na tym języku. Wiele RTOSów zapewnia warstwę kompatybilności z C++, ale w przeciwieństwie do „dużych”...
https://obrazki.elektroda.pl/1883886000_... Witajcie moi drodzy. Przedstawię tutaj mój zamiennik Tasmoty przeznaczony na platformę BL602 produkcji Bouffalo Lab, oferujący m. in. możliwość sparowania naszego urządzenia z Home Assistant poprzez MQTT. Pokażę tu, jak można łatwo wgrać wsad na BL602 za pomocą prostego konwertera USB na...
https://obrazki.elektroda.pl/5936410400_... Autor prezentowanego poniżej projektu, przy przejściu do nowej pracy otrzymał od firmy między innymi opaskę fitnessową, pokazaną po lewej stronie. Abstrahując od przydatności takiego urządzenia podczas ćwiczeń fizycznych, opaska sama w sobie jest niezwykle ciekawa pod względem technicznym....
https://obrazki.elektroda.pl/7245713600_... BK7231 zazwyczaj programujemy przez UART - pozwala na to wgrany przez producenta bootloader. W wyjątkowych sytuacjach jednak możemy niechcący ten bootloader nadpisać - wtedy musimy użyć trybu programowania SPI by odratować zablokowany układ. Tutaj opiszę, jak działa tryb SPI w BK7231 oraz...
https://obrazki.elektroda.pl/5931581900_... Opiszę tutaj krok po kroku instalację, konfigurację oraz użycie darmowego kompilatora SDCC do tworzenia programów na mikroprocesory PIC. Całość będzie w formie szczegółowego tutoriala. Ze względu na długość całości tutorial podzielę na osobne tematy . W dalszych częściach postaram się...
https://obrazki.elektroda.pl/4024708700_... Witajcie moi drodzy. Przedstawię tu pierwszy na świecie tutorial programowania modułu WiFi WB2S, czyli BK7231. Moduł ten występuje w wielu urządzeniach smart home, a w internecie panuje opinia, że nie można stworzyć dla niego własnego firmware. Nic bardziej mylnego - pokażę tu krok po kroku...
skrypt linkera stm32 skrypt linkera symbol skrypt linkera
bosch sterownik silnika rozruchowy danfoss gorący przewód
traktorek silnik briggs traktorek silnik briggs
Komunikat "Paragon już rozpoczęty" na kasie fiskalnej - co zrobić? Oleo Mac 937: Bezpieczne połączenie przewodu zapłonowego