attribute section

Znaleziono około 562 wyników dla: attribute section
  • ATmega 16 - Jak przenieść 4KB struktury do zewnętrznego EEPROMu?

    Poczytać chociażby w książce z mojej stopki. Jak chcesz na piechotkę to manual do objcopy i o attribute section w gcc.

    Mikrokontrolery AVR   20 Lut 2015 15:44 Odpowiedzi: 8    Wyświetleń: 1866
  • REKLAMA
  • Wszystko o ARM (LPCxxxx) i programowaniu w asm i C.

    Po PRZECINKU __attribute__ ((section(".ext_mem"), aligned (32))) 4\/3!!

    Mikrokontrolery ARM   28 Lis 2009 17:35 Odpowiedzi: 141    Wyświetleń: 17212
  • Nie znalazłeś odpowiedzi? Zadaj pytanie Sztucznej Inteligencji

    Czekaj (1min)...
  • Deklaracja stałej tablicy w pamięci programu w WinAVR - jak to zrobić?

    ...Zauwałzyłem, że po zadeklarowaniu w ten sposób liczba komórek RAM zmniejsza się:... Pamięci programu również :( Zajrzyj do pliku pgmspace.h , no i oczywiście do dokumentacji , a w lot zrozumiesz ;) #define EEPROM __attribute__ ((section (".eeprom"))) #define FLASH __attribute__ ((section (".progmem.gcc"))&...

    Mikrokontrolery   11 Maj 2006 16:00 Odpowiedzi: 7    Wyświetleń: 1469
  • REKLAMA
  • [AVR][C]{AtmelStudio] Stała w pamięci programu pod konkretnym adresem

    [syntax=c] const uint8_t ala_ma_kota __attribute__ ((section (".MySection1"))) = [/syntax] Pozostaje poinformować linker pod jakim adresem ma umieścić ".MySection1".

    Mikrokontrolery AVR   18 Lip 2018 20:09 Odpowiedzi: 22    Wyświetleń: 1131
  • [STM32F4][C] - Zamiana bajtów miejscami "w locie"

    Mam na sztywno podać ich rozmiar? Też można. Niestety nie rozumiem tego: "No bo takie rzeczy trzeba robić "po ludzku", czyli bufor ręcznie (wcześnie), a następnie należy go podpiąć do tej struktury (zmienić tablicę na normalny wskaźnik). " Z tego zrozumiałem, że to ma być jednak wskaźnik, nie tablica. Zrób tak: [syntax=c] struct framebuffer { ... void*...

    Mikrokontrolery ARM   18 Mar 2015 15:53 Odpowiedzi: 59    Wyświetleń: 3384
  • REKLAMA
  • Jak skonfigurować Eclipse i CodeSourcery do programowania LPC2478?

    Ty napisałeś: __attributte__ ((section(".ext_mem"))); Ja proponowałem: __attribute__ ((section(".ext_mem"))) Porównaj ilość i lokalizację liter 't' 4\/3!!

    Mikrokontrolery ARM   27 Paź 2011 07:11 Odpowiedzi: 103    Wyświetleń: 17371
  • Jak utworzyć tablicę w EEPROM procesora ATMega 8 w AVRGCC?

    Witam. Ja robię to tak #define EEPROM __attribute__ ((section (".eeprom"))) unsigned int tab[5] EEPROM ={18,2984,3188,3400,36200}; pozdr.

    Mikrokontrolery   18 Lis 2009 15:31 Odpowiedzi: 7    Wyświetleń: 2797
  • [AVR] [AVR][GCC] - Eclipse: Syntax error przy EEMEM, kompilacja działa poprawnie

    Również natknąłem się na ten problem i nie wiem jak go rozwiązać. Niemniej jednak można makro EEMEM zastąpić tym czym jest naprawdę ( __attribute__((section(".eeprom"))) ) i wtedy ten problem nie występuje. 4\/3!!

    Mikrokontrolery   07 Sty 2010 19:51 Odpowiedzi: 3    Wyświetleń: 2387
  • [STM32][CodeSourcery]Deklaracja funkcji w pamięci flash

    Ja mam tak: __attribute__ ((section(".bootloader&... int program_page(unsigned short *data, unsigned int adr) {... } i linker: .bootloader 0x08000000+128K-1K : { *(.bootloader) } i działa

    Mikrokontrolery ARM   14 Lut 2010 15:32 Odpowiedzi: 3    Wyświetleń: 2132
  • [C] - Jak przypisać zmiennej określony adres fizyczny?

    Nie możesz zmienić "&zmienna", bo to jest r-wartość. W gcc możesz użyć atrybutu section, który powie kompilatorowi do jakiej sekcji wrzucić zmienną: https://gcc.gnu.org/onlinedocs/gcc/Varia... [syntax=c] #define BKP_SRAM __attribute__ ((section ((".bkpsram")))) uint32_t zmienna BKP_SRAM; [/syntax] Linkerowi należy podać argument "--section-start=.bkpsram=0x40024000",.....

    Programowanie   09 Sty 2015 09:48 Odpowiedzi: 10    Wyświetleń: 1599
  • ATmega164P - Jak poprawnie zrealizować programowy reset za pomocą watchdog'a?

    W wielu nowszych AVRach jeśli watchdog był źródłem resetu to zostaje włączony automatycznie, bo bit WDE jest ustawiany tak jak WDF z rejestru MCUSR. Pozostałe bity rejestru WDTCSR są wyzerowane, a to oznacza, że ustawiony jest minimalny czas. Wyłączenie watchdoga należy wykonać przed funkcją main. Służą do tego sekcje .initx. Ponieważ będzie to funkcja...

    Mikrokontrolery AVR   24 Mar 2013 23:27 Odpowiedzi: 3    Wyświetleń: 1413
  • STM32F4 [C] Eclipse - Dostęp i zarządzanie pamięcią ram.

    Witam, A jak już utworzysz sekcje to jak chcesz umieścić tam zmienna robisz np tak: [syntax=c] int tablica[ 200] __attribute__(( section(".sekcjaRam") ));[/syntax] Popatrz sobie na taki rysunek w manualu (na początku)tam masz co do czego ma dostęp, ogólnie CCM_RAM nie dostępu do DMA Pozdrawiam

    Mikrokontrolery ARM   05 Sty 2014 12:55 Odpowiedzi: 16    Wyświetleń: 3036
  • Jak ustawić rozmiar stosu w kompilatorze avr-gcc (WinAvr).

    Lepiej wykorzystaj do tego celu pamiec programu , ewentualnie eeprom. Sposob deklaracji tablic dla winavr : dla eeprom : #include <avr/eeprom.h> #define EEPROM __attribute__ ((section (".eeprom"))) unsigned char temp [20] EEPROM ={1,2,3,4,}; dla pamieci programu : #include <avr/pgmspace.h> static unsigned char temp_1 [2] PROGMEM = {1,2,3,4};

    Mikrokontrolery   05 Maj 2005 10:38 Odpowiedzi: 13    Wyświetleń: 3585
  • [STM32F7][C Attolic] Przesunięcie alokacji zmiennych w RAM dla całego pliku *.C

    Bezedura.. Keil i może potrafi wykryć takie coś, jednak nie GCC. No faktycznie, po próbach z GCC, przyznaję Ci rację, że nie jest w GCC tak prosto i wygodnie ze zmiennymi absolutnymi, jak mi się wydawało po praktyce w Keil. Ale pewnym prostym wyjściem może być zdefiniowanie buforów w sposób podobny jak tu: [syntax=c]unsigned char __attribute__((section...

    Mikrokontrolery ARM   24 Kwi 2018 07:24 Odpowiedzi: 7    Wyświetleń: 750
  • REKLAMA
  • [AVR Studio i C] Położenie tablicy danych w pamięci flash

    Przykład: a)Utwórz własną sekcję. unsigned int value[128] __attribute__ ((section("moja_sekcja&... = {1,2,3,4,5,6,7,8,9}; b)Dodaj opcję linkerowi. -Wl,-section-start=moja_sekcja=0x0800 0x800 to przykładowy adres pamięci ;)

    Mikrokontrolery AVR   15 Sie 2009 22:13 Odpowiedzi: 6    Wyświetleń: 2765
  • STM32F439 i STM32F429 - RTC nie działa na zasilaniu z VBAT.

        .bkp_mem (NOLOAD) : { *( .bkp_mem  .bkp_mem.*) } > bkp_ram volatile int16_t Zmienna_BKP_SRAM __attr... .bkp_ram "))); Wystarczyło w pliku .dmp albo .map zobaczyć adres tej zmiennej i wszystko byłoby jasne. W ostateczności w pliku .lss też można dojść do adresu.

    Mikrokontrolery ARM   06 Gru 2016 23:17 Odpowiedzi: 29    Wyświetleń: 2415
  • [GCC] Linker usuwa zmienne z atrybutem "used"

    Zademonstruję Ci: Nowy projekt w Atollic for STM32: Bez modyfikowania skryptu linkera: https://obrazki.elektroda.pl/4714547300_... A teraz Twoje przezroczyste przypisanie: https://obrazki.elektroda.pl/8906289200_... Dopiero po dodaniu do skryptu linkera: https://obrazki.elektroda.pl/4995382700_...

    Mikrokontrolery ARM   03 Lip 2018 20:13 Odpowiedzi: 29    Wyświetleń: 1365
  • Jak poprawnie umieścić funkcję w RAMie podczas aktualizacji firmware?

    Zrobiłem test na przykładzie z innego wątku i to działa void __attribute__ ((long_call, section (".data"))) Delay1(unsigned int del_time); void __attribute__ ((long_call, section (".data"))) Delay1(unsigned int del_time) { for(unsigned int abc=0;abc<del_time;abc++);...

    Mikrokontrolery   15 Mar 2010 15:00 Odpowiedzi: 44    Wyświetleń: 4810
  • [stm32] Jak wysyłać i odbierać dane z zewnętrznego RAMu przez FSMC w STM32?

    Można i tak, choć jak masz startupa z moich przykładowych projektów, to są prostsze sposoby (; Tak, mam startupa z Twojego projektu... prościej to znaczy jak ? Jeszcze chciałem się zapytać czemu nie mogę utworzyć zmiennej lokalnej np.: section attribute cannot be specified for local variables

    Mikrokontrolery ARM   13 Wrz 2011 08:50 Odpowiedzi: 26    Wyświetleń: 3632
  • [AtTiny13][C]Wybudzanie watchdogiem z trybu PowerDown

    Domyślnie jeśli Watchdog jest włączony cały czas to po resecie ma domyślnie ustawiony czas 16ms (bity WDP2..0 w rejestrze WDTCR są zerami) Zatem układ wciąż ci się resetuje po pierwszym przebiegu. Żeby się tego pozbyć wklej sobie przed funkcją main() coś takiego static void __init3( void ) __attribute__ (( section( ".init3"...

    Mikrokontrolery AVR   05 Wrz 2010 17:28 Odpowiedzi: 13    Wyświetleń: 2903
  • Jak zrobić programowy PWM z wyjściem przeciwsobnym (na dwóch wyjściach)?

    Czyli void(* resetFunc) (void) = 0; wstawiam przed funkcją setup(), a resetFunc(); mogę wywołać np z przerwania? Tak, wywołać na końcu obsługi przerwania. Wykonywanie głównej pętli programu" i jego resetowanie chyba nie jest podstawowym zadaniem urządzenie które budujesz? Spróbuj przedstawić algorytm który ułożyłeś, może komuś uda się rozwiązać problemy...

    Arduino   17 Sie 2020 15:02 Odpowiedzi: 60    Wyświetleń: 2946
  • STM32H750 (743) i skomplikowane konfigurowanie zegarów.

    Co do umieszczania kodu w odpowiednich przestrzeniach to trzeba zmodyfikować skrypt linkera oraz użyć atrybutów do danych i kodu aby kompilator odpowiednio stworzył obiekty. Ale to nie jest wystarczające. Trzeba dopisać trochę kodu w startupie jeżeli mają być zainicjalizowane (zerowanie też uznamy dla uproszczenia za inicjalizację aby nie tworzyć dodatkowych...

    Mikrokontrolery ARM   01 Sty 2020 22:23 Odpowiedzi: 15    Wyświetleń: 1149
  • [STR7][C][RIDE7] Bootloader, Undefined instruction exception

    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"...

    Mikrokontrolery ARM   15 Wrz 2009 14:05 Odpowiedzi: 7    Wyświetleń: 2301
  • [LPC2148] Jak ustawić CRP w LPC2148 bez nadpisywania kodu w GCC?

    Wystarczy w skrypcie linkera ZA wektorami przerwań, a PRZED normalnym kodem wstawić offset (poprzez ". += jakis_offset;") tym sposobem miejsce to będzie zasadniczo puste. Wstawienie konkretnej wartości najprościej zrobić tworząc nową sekcję (uprzednio niestety rozbijając tą standardową na obszar dla wektorów i obszar dla normalnego kodu): MEMORY {...

    Mikrokontrolery ARM   26 Mar 2010 22:32 Odpowiedzi: 10    Wyświetleń: 1499
  • Programowanie płytki Embedded Systems v.2.01 z atmega128 na Linuxie

    OpenOCD to soft obsługujący debuggery JTAG, ja go używam do programowania/debugowania procesorów ARM. Ale z tego co można wyczytać w sieci coś się dzieje wokół wsparcia dla AVR-ów. OpenOCD komunikuje się z JTAG-iem i udostępnia dwa serwery debugowania telnet oraz gdb(do tego drugiego można podłączyć się samym gdb i debugować program). A manual do OpenOCD...

    Mikrokontrolery AVR   24 Lis 2009 17:06 Odpowiedzi: 6    Wyświetleń: 2505
  • AVR UART: Przechowywanie stałych stringów w FLASH zamiast RAM - jak to zrobić?

    https://gcc.gnu.org/onlinedocs/gcc/AVR-V... The progmem attribute is used on the AVR to place read-only data in the non-volatile program memory (flash). The progmem attribute accomplishes this by putting respective variables into a section whose name starts with .progmem. /* Use custom macros from AVR-LibC */ #include <avr/pgmspace.h>...

    Programowanie Początkujący   12 Sty 2025 01:08 Odpowiedzi: 6    Wyświetleń: 144
  • ATmega16 - błędny odczyt zmiennych z EEPROM przy użyciu avr/eeprom.h

    Oto plik ze zmiennymi z których chce korzystać w programie głównym: #ifndef H_ZMIENNE_EEPROM_H #define H_ZMIENNE_EEPROM_H uint8_t smieci1 __attribute__((section("... = 0; uint8_t temp_zadana __attribute__((section("... = 28; uint8_t temp_zalaczenia_pompy __attribute__((section("...

    Mikrokontrolery AVR   24 Lut 2009 16:51 Odpowiedzi: 7    Wyświetleń: 3412
  • Jak odczytać dane z pamięci Flash powyżej 64kB w C/C++?

    Zrobiłem coś takiego: #define EXTMEM1 __attribute__((section("... #define EXTMEM2 __attribute__((section("... #define EXTMEM3 __attribute__((section("... #define EXTMEM4 __attribute__((section("...

    Mikrokontrolery AVR   19 Mar 2010 12:08 Odpowiedzi: 21    Wyświetleń: 2773
  • [ATtiny13][gcc/asm solved]Sterowniczek RGB - o 20 bajtów za dużo

    Oczywiście przeglądałem plik .lss i jest tam parę spraw do wycięcia, np. ... inicjalizacja .bss Jeśli zmienne nie muszą być inicjalizowane, to może umieścić je w sekcji .noinit ? Po dodaniu atrybutu sekcji .noinit do wszystkich zmiennych globalnych rozmiar kodu wyniósł u mnie po skompilowaniu: 1022 bytes (99.8% Full). 4.5 The .noinit Section This sections...

    Mikrokontrolery AVR   30 Sie 2011 21:58 Odpowiedzi: 17    Wyświetleń: 3891
  • [Atmega162][C] funckja delay przerywa wykonywanie programu

    Natomiast drążąc dalej temat jak wyjaśnić to, że na atmedze16 przy identycznej kofiguracji fuse'ów wszystko działało elegancko? Na procku ATmega162 ale podobnie na ATmega88 itp ... też działa elegancko. Tyle, że trzeba doczytać w nocie i pamiętać, że domyślnie Watchdog jest włączony. I wcale nie trzeba go zaraz fusami wyłączać bo po co? Może się często...

    Mikrokontrolery AVR   20 Mar 2011 12:33 Odpowiedzi: 14    Wyświetleń: 1825
  • Cortex-M3: Jak używać bit bandingu w pamięci SRAM i rejestrach peryferyjnych?

    No wlasnie /; Wydaje się, że gcc jeszcze nie jest skłonne do obsługiwania bit bandingu dla SRAMu w wygodny sposób Wygody? Zgodny z duchem twórców procesora ;-) #define BAND(x) (x) __attribute__((section("... int BAND(bb), BAND(aa); int main() { bb = 1; aa = 0; return...

    Mikrokontrolery ARM   14 Maj 2013 12:45 Odpowiedzi: 30    Wyświetleń: 6393
  • Problem z: ignoring changed section attributes for .data

    Pisze program na AT91SAM7S256. Chcąc przenieść część kodu do ram-u stosuje __attribute__ ((section (".data"))), ale w efekcie dostaje komunikat jak w temacie. Program próbowałem kompilować w WinArm. Komunikat to tylko ostrzeżenie więc nie przeszkadza w kompilacji, ale wydaje mi się że nie świadczy o niczym dobrym i sprawia że to co chciałbym przenieść...

    Mikrokontrolery   22 Lut 2008 22:15 Odpowiedzi: 4    Wyświetleń: 1182
  • Wybór procesora do sterowania monitorem 640x400, 70Hz, 30KHz - jaki model?

    #define RAMFUNC __attribute__ ((long_call, section (".fastrun"))) a potem np: RAMFUNC void wyslij(int costam);

    Mikrokontrolery   17 Lip 2010 19:52 Odpowiedzi: 19    Wyświetleń: 3947
  • Atmega128 plus xram 32kB, przeniesienie segmentu danych

    (at)osctest1 Uprościłem to po swojemu, może trochę dziwnie ale działa. .xram [syntax=c] ## Intel Hex file production flags HEX_FLASH_FLAGS = -R .eeprom -R .fuse -R .lock -R .signature -R .xram [/syntax] Kompilator utworzył tablicę 13200 bajtów. Program dział i mam dostęp do zewnętrznej pamięci ram. [syntax=dos] .xram 0x00801100 0x3391 .xram 0x00801100...

    Mikrokontrolery AVR   29 Mar 2020 11:52 Odpowiedzi: 45    Wyświetleń: 1872
  • [C] Wartość makra __DATE__ pod określonym adresem w pamięci FLASH

    Przy próbie wyciągnięcia jednego elementu: [syntax=c]const uint32_t gValue __attribute__((section(".ARM.__at_0x0800... = __DATE__[1];[/syntax] Zwracany jest ten sam błąd (używam standardu C11)

    Mikrokontrolery   18 Kwi 2020 19:54 Odpowiedzi: 6    Wyświetleń: 510
  • Jak wymusić skok do adresu 0x1400 dla INT0 w AVR-GCC bez deklaracji ISR?

    Pytań ciąg dalszy: alokując wektory przerwań do innej części FLASH za pomocą attribute((section".aaa")) napotkałem na taki oto problem....a mianowicie linker zawsze umieszcza przerwania w tej samej sekcji...nie ma możliwości umieszczenia wektora 1 np w sekcji .aaa a wektora 9 w seksji .bbb !!! jakby tego było mało to najpierw jest umieszczany wektor...

    Mikrokontrolery   26 Lis 2007 07:16 Odpowiedzi: 6    Wyświetleń: 3732
  • [AVR][AVR-GCC] Tablica pod wskazanym adr. w pamięci programu

    No to napisałem:) Po prostu wstawiłem __attribute__ ((section (" .data"))). To wszystko. Nie tworzyłem żadnych dodatkowych sekcji.

    Mikrokontrolery AVR   03 Mar 2011 16:14 Odpowiedzi: 18    Wyświetleń: 3976
  • Jak zapisać tablice w wewnętrznej pamięci EEPROM ATtiny2313

    Trzeba użyć __attribute__((section(".eeprom"))) tutaj http://avr.elektroda.eu/?q=node/13 masz przykład...

    Mikrokontrolery   05 Kwi 2007 13:07 Odpowiedzi: 4    Wyświetleń: 2091
  • AVR GCC: Jak umieścić kod ASM w sekcji bootloadera na ATmega w projekcie C?

    Spróbuj zdefiniować funkcję bootloadera z atrybutem __attribute__ ((section(".bootloader")))

    Mikrokontrolery   02 Lip 2007 06:55 Odpowiedzi: 1    Wyświetleń: 1266
  • [STM32F103] - Umieszczenie stałej pod wskazanym adresem w pamięci flash

    Mam jeszcze taki problem, że po uruchomieniu programu z linijką kodu: [syntax=c]const uint CRC_Programu __attribute__((section (".myBufSection"))) = 0xe948;[/syntax] program wchodzi do obsługi przerwania Default_Handler. Bez tej lnijki kodu program działa prawidłowo.

    Mikrokontrolery ARM   27 Lut 2018 19:30 Odpowiedzi: 30    Wyświetleń: 2943
  • Atmega328P: wykonanie przerwania po wybudzeniu, SPI i MISO, resetowanie

    No własnie po resecie jest włączony i nie wiem jak go wyłączyć bo chyba nawet nie przechodzi boodloader... A polecenia [syntax=bash]// Function Pototype void wdt_init(void) __attribute__((naked)) __attribute__((section(".init3"))); ... // Function Implementation void wdt_init(void) { MCUSR = 0; wdt_disable(); return; }[/syntax] Jakby nie działały

    Arduino   16 Cze 2020 18:26 Odpowiedzi: 14    Wyświetleń: 675
  • [sam7xc] [sam7xc][c/winARM] - Jak umieścić obsługę przerwań w RAM dla szybszego działania?

    __attribute__ ((section("jakas-sekcja"))) + dodanie tej sekcji do skryptu linkera + modyfikacja startupa aby inicjalizował też te obszary P.S. WinARM? Przecież ten pakiet ma jakieś 300 lat... 4\/3!!

    Mikrokontrolery ARM   15 Paź 2012 22:41 Odpowiedzi: 3    Wyświetleń: 888
  • AT90S2313 zapis 16-bitowej wartosci poprzez eeprom_write...

    Nie za bardzo mi to wychodzi.. powiedziałbym, że nawet wcale :( uint8_t adr __attribute__((section(".eeprom"))); (...) eeprom_write_byte(&adr, zm); i zm=eeprom_read_byte(&adr); -dziala, jednak zalezalo mi na nieco wiekszej wartosci

    Mikrokontrolery   23 Cze 2005 09:51 Odpowiedzi: 8    Wyświetleń: 1142
  • [STM32H743II][C][gcc][Eclipse] - Organizacja zmiennych w pamięci

    Dla jednego segmenmentu pamięci. Powtórzyć dla innych Czy wystarczy deklaracja typu: Nie zawsze. O ile jej nie użyjesz to pewnie zostanie wyoptymalizowana (zakładam włączenie jakiś optymalizacji). Przywróciłem. Może komuś się przyda. ---- Skasowano z tematu: [url=https://www.elektroda.pl/rtvforum/v...

    Mikrokontrolery ARM   14 Gru 2020 19:44 Odpowiedzi: 2    Wyświetleń: 3003
  • [LPC1754]Automatyczna inicjalizacja zmiennych w drugim obszarze RAM'u.

    No ale przecież to naprawdę nie jest w ogóle skomplikowane. Zdecyduj jednak najpierw czy wolisz w tym "drugim" pliku zmienne umieszczać "ręcznie" w sekcjach czy chcesz żeby WSZYSTKIE zmienne z tego pliku były w innym obszarze ramu Opcja 1: [syntax=C]uint32_t zmienna1 __attribute__ ((section(".jakas_dziwna_sekcja"))); // albo #define uint32_ext_t uint32_t...

    Mikrokontrolery ARM   16 Gru 2011 20:13 Odpowiedzi: 29    Wyświetleń: 2257
  • STM32H753 - brak transmisji UART z DMA1, konfiguracja DMAMUX

    Nie wiem czy dobrze się rozumiemy, skrypt linkiera umieszcze dane w pamięci DCTMRAM której nie obsługuje DMA1. Więc za pomocą makra [syntax=c]#define SRAM_D1 __attribute__((section(".sram_d1")))[/sy... Utworzyłem zmienna globalną UART_TxBuf którą zainicjalizowałem napisem STM32H7 UART, lecz zmienna zawiera jakieś przypadkowe wartości. Dopiero w dalszej...

    Mikrokontrolery ARM   08 Sty 2019 23:32 Odpowiedzi: 23    Wyświetleń: 1206
  • [C] Dlaczego funkcja rand() zwraca 167 przy RAND_MAX 0x10 w C?

    Jak rand liczy to dowiesz się z źródła: [syntax=c]/*- * Copyright (c) 1990, 1993 *The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the...

    Mikrokontrolery AVR   16 Mar 2011 14:10 Odpowiedzi: 10    Wyświetleń: 3667
  • Jak umieścić tablice struktur w SDRAM na Xplaind z ATxmega128A1?

    Albo zmienić skrypty linkera, tak, aby poinformować linker, że masz więcej RAM, albo stworzyć nową sekcję pokrywającą SDRAM i w niej umieszczać struktury: int foo __attribute__ ((section (".sekcja"))); Przy czym adres sekcji należy zdefiniować albo w skrypcie linkera, albo w opcjach projektu w Atmel Studio.

    Mikrokontrolery   02 Cze 2014 14:11 Odpowiedzi: 22    Wyświetleń: 1422
  • Jak zdefiniować zmienną float w EEPROM Atmega8 przy wgrywaniu programu?

    To nie są żadne atrybuty tylko makrodefinicje (ściślej dyrektywy preprocesora) zdefiniowane w plikach nagłówkowych. Skoro już się tak zagłębiasz to może zerknij co to są za makrodefinicje, zanim napiszesz, że bzdura i nieprawda. Poza tym, co to za uściślenie - makrodefinicje (ściślej dyrektywy preprocesora). Przecież makro jest jedną z dyrektyw, a...

    Mikrokontrolery AVR   15 Wrz 2010 21:01 Odpowiedzi: 16    Wyświetleń: 3252
  • AVR: Można wybrać adres EEPROM pod jakim zapisać dane?

    Okej jest to całkiem proste I skuteczne rozwiązanie. Poczytałem jeszcze o sekcjach. Mozna osiągąć moj cel w bardziej elegancki sposob z zachowanie wygody poslugiwania sie indeksowabiem tablicy. Znalazłem coś takiego.w sieci: [syntax=c] strtuct { int n; long l; char c; ... } eevars __attribute__((section(".eevars"))); -Wl,-section-start=.eevars=0x81000C...

    Mikrokontrolery Początkujący   24 Sie 2018 18:35 Odpowiedzi: 9    Wyświetleń: 843
  • AVR/bootloader - Includowanie bibliotek w sekcji bootloadera

    Ok tylko mam tak zdefiniowaną sekcję: #define BootSection __attribute__ ((section(".bootloader&... #include"rfm22/rfm22.h" BootSection int main(void) { while(1); } mam bibliotekę obsługującą RM22 przy pomocy którego chcę wgrywać program. Kiedy podglądam plik hex widzę że cała biblioteka...

    Mikrokontrolery AVR   05 Lut 2013 18:47 Odpowiedzi: 19    Wyświetleń: 1734
  • [LPC1754][C++] Adres RAM. Inny sposób umieszczania obiektów a pamięci.

    Wiadomo że LPC1754 ma 32kB RAM'u. Jednak jest ona nieliniowa (16K pod 0x2000000 i 16K pod 0x2007C000). Czy istnieje inny sposób umieszczenia np: obiektu klasy czy innych zmiennych w tej "drugiej" pamięci niż tak jak poniżej? [syntax=cpp] class cl_file File_ __attribute__ ((section(".ramII"))); [/syntax] Oczywiście w pliku linkera sekcja ramII jest odpowiednio...

    Mikrokontrolery ARM   27 Lis 2011 12:53 Odpowiedzi: 5    Wyświetleń: 1989
  • [mega8][c]zapamietanie zmiennej na czas restartu (nie EEPROM

    uint8_t numer __attribute__ ((section(".noinit"... tego możesz używać, ale zawsze musisz zadbać o zainicjowanie takiej zmiennej samodzielnie. Przykładowo reset wywołany przez POR zeruje zmienną, a w przypadku wykrycia, że przyczyna resetu jest inna zmiennej nie zerujesz. Wystarczy odpowiednio wcześnie sprawdzic zawartość...

    Mikrokontrolery AVR   06 Paź 2010 09:28 Odpowiedzi: 22    Wyświetleń: 1899
  • [STM32F4] [STM32F4][C] - Rozmiar tablicy pixels w strukturze framebuffer w SRAM

    Umieszczanie tych danych w ten sposób to straszne chodzenie dookoła i proszenie się o kłopoty... Wystarczyłoby w skrypcie linkera dodać nową sekcję - wzorując się np. na .bss, skopiować, zmienić "bss" na "moja_sekcja" i potem w kodzie sobie zrobić zmienną: typ tablica[BARDZO_DUŻA] __attribute__ ((section(".moja_sekcja"))); 4\/3!!

    Mikrokontrolery ARM   28 Sie 2014 11:12 Odpowiedzi: 20    Wyświetleń: 2055
  • [C] [C][Atmega8] - Jak odczytać zapisane dane w EEPROM przez programator?

    oo właśnie tego szukałem. chciałbym się jeszcze dowiedzieć jak by miała ta wspomniana struktura wyglądać bo nie bardzo mam pomysł na to ? takie cos ?? typedef struct struczas{ int min; int godz; int dzienmies; int mies; int rok; uint8_t eeprom_val __attribute__((section("... }; nie wiem nawet czy...

    Mikrokontrolery AVR   02 Paź 2010 15:28 Odpowiedzi: 8    Wyświetleń: 12223
  • Zmienna w sekcji NOINI Keil5 zerowana po resecie - jak ustawić?

    deklaracja https://obrazki.elektroda.pl/6052358500_... Udało się ale program działa źle, nie działa usart, timery (nie wnikałem czy nie sa włączone, wszystko wskazuje jakby zegar nie był wcale konfigurowany). Mój poprzednik, który napisał ten program musiał też mieć z tym problem, bo zmniejszył obszar ram i zmienne, które nie miał być...

    Mikrokontrolery ARM   19 Mar 2018 07:21 Odpowiedzi: 1    Wyświetleń: 600
  • Czy jest na klawiaturze przycik cudzysłów (") ale na ..

    Chodzi mi o te dwie kreseczki cudzysłowia (") ale na dole. Przepisuje program w AvrSide z gazety i jest taka linijka : #define NOINIT __attribute__ ((section ( " .noinit " ))) Tuż przed .noinit jest początek cudzysłowia , tylko że w gazecie jest on na dole. Nie wiem czy to błąd w druku bo coś mi dalej w kompilatorze nie wyświetla zmiennych w oknie WATCH...

    Programowanie   16 Cze 2006 21:45 Odpowiedzi: 3    Wyświetleń: 8206
  • [STM32/GD32] umieszczenie kodu poniżej pewnego adresu w GCC

    ok umieszczenie zmiennej const w danej sekcji powinno pomóc, tylko mam problem z deklaracją [syntax=c] static char const *const ssi_tags[ssitags_num] __attribute__ ((section(".ssitag"))) = { "t0", //0 sekundy "t1", //1 minu "t2", //2 godziny "t3", // 3 dni "t4", // 4 czas "out", //5 out state "inp1", //6 INP1A "inp2", //7 INP2A "inp3", //8 INP3A "inp4",...

    Mikrokontrolery ARM   04 Lut 2021 12:33 Odpowiedzi: 13    Wyświetleń: 1158
  • STM32F1/F4 (Eclipse) - Tworzenie biblioteki dynamicznej-podział programu

    Dzięki podpowiedzi tadzik85 udało się rozwiązać problem. Opisywana metoda pozwala umieszczać w stałym obszarze pamięci FLASH dane (bitmapy, czcionki itp) które zajmują dużo miejsca (rzędu kilkuset kB) i nie są często zmieniane. Dzięki tej metodzie, wielkość kodu wynikowego wpisywanego do procesora redukujemy do kilkudziesięciu kB. Czas programowania...

    Mikrokontrolery ARM   27 Wrz 2014 10:43 Odpowiedzi: 16    Wyświetleń: 1686
  • Pobieranie plików z serwera przez SIM868 do Optiboot na Atmega328PB

    Zrobiłem szybki test, aplikacja która wywoływała bootloader poprzez wdt_enable(WDTO_15MS); zamieniłem na wdt_enable(WDTO_250MS); bo ewidentnie po tym procesor ciągle był resetowany przez WDT, ustawiony bit WDRF mimo że bootloader jako trzecia z instrukcji w main ma wdt_disable(); Dodałem więc: [syntax=c]static void __init3( void ) __attribute__ (( section(...

    Mikrokontrolery AVR   02 Sie 2022 12:28 Odpowiedzi: 20    Wyświetleń: 1428
  • [AT91SAM7S256][C/Rowley Crossworks] Trzeszczący dźwięk z MP3

    Używam kompilatora GCC i tam wygląda to tak: Dla funkcji w C __attribute__ ((section (".data"))) static void AntiAlias(int *x, int nBfly) ; dla funkcji w asm .data (na początku pliku asm) podobno trzeba też dodać atrybut long_call, ale czy jest on konieczny nie wiem bo nie sprawdzałem, czy działa bez niego. Mogę jedynie powiedzieć, że do funkcji w C...

    Mikrokontrolery ARM   29 Gru 2009 14:36 Odpowiedzi: 103    Wyświetleń: 15270
  • stm32F429 Disco + LTDC, LCD-ILI9341 - Jak poprawnie obrócić obraz o 90 stopni?

    Witam zrobiłem to w inny sposób użyłem funkcji: [syntax=c] GUI_SetOrientation(GUI_SWAP_XY | GUI_MIRROR_Y);[/syntax] Tylko żeby to działało trzeba w GUIConf.c ustawić [syntax=c]#define GUI_NUMBYTES (1024 * 128*8) U32 extMem[GUI_NUMBYTES / 4] __attribute__((section(".HeapMemSection"... [/syntax] i zrobić sekcje w linkerze adres 0xD0100000 (zewnętrzy...

    Mikrokontrolery ARM   12 Kwi 2014 04:39 Odpowiedzi: 10    Wyświetleń: 3162
  • [Atmega8] Jak zapisać i odczytać zmienną int w EEPROM na Atmega8 w C?

    odkopuję stary temat, bo napotkałem nowy problem. tak jak poradził (at)tmf stworzyłem zmienne EMEM: char jeden __attribute__((emem)); char dwa __attribute__((emem)); int dziesiatki, jednosci; char wybrany1,wybrany2; zdaje się, że nie ma takiego atrybutu w gcc, jak już to __attribute__((section("...

    Mikrokontrolery   03 Paź 2010 11:03 Odpowiedzi: 13    Wyświetleń: 6521
  • WinARM vs WinAVR – jak zadeklarować stałą tablicę ikon w pamięci Flash?

    Wydaje mi sie ze wystarczy zapisac const unsigned char Niekoniecznie, rownie dobrze moze byc zaladowany do RAM-u.Jesli to GCC to najlepiej dodac __attribute__((section(".text"))) zeby byc pewnym. ale w C wartosc const mozna zmieniac przez wskaznik, wiec nie wiem czy to bedzie poprawny zapis dla danych zapisanych w FLASH. To nie ma nic do rzeczy.

    Mikrokontrolery   14 Mar 2008 08:34 Odpowiedzi: 8    Wyświetleń: 1669
  • STM32F103 - Zapis do FLASHa nie działa przy optymalizacji -Os. Co robić?

    Nie ma to jak wrzucać dokładny kod błędu... main.c:32:32: error: Roleta_EEPROM causes a section type conflict with Roleta_EEPROM2 volatile struct Roleta_offsets Roleta_EEPROM[7] __attribute__ ((section(".eeprom_mem&... __attribute__ ((aligned (32))) = ^ Jak chcesz to mieć...

    Mikrokontrolery ARM   11 Lip 2016 07:57 Odpowiedzi: 37    Wyświetleń: 2628
  • [AVR][C] ZApis i odczyt z pamięci EEPROM - adresowanie

    y0yster poczytaj jeszcze ten manual, bo wyważasz otwarte drzwi - stosowny atrybut już jest zdefiniowany w bibliotece pod nazwą EEMEM. Prawda, jest on zdefiniowany: #define EEMEM __attribute__((section("... Tylko wcześniej go nie widziałem :). Ale prawda jest taka, że oba zapisy są równoważne :), więc nie ma...

    Mikrokontrolery   15 Mar 2011 16:44 Odpowiedzi: 9    Wyświetleń: 11433
  • XDATA i ATmega. Pamięć zewnętrzna. Czy w gcc jest sposób na taką deklarację?

    Dobrze kombinujesz z tym że wcześniej musisz włączyć zewnętrzną magistralę danych i adresową (ustawić odpowiednie bity). To jeden ze sposobów. Jednak koniecznie potrzebujesz ażeby ta zmienna była w zewnętrznej pamięci ?? Bo jeżeli nie to może zmieści się w wewnętrznej ? Magistralę w GCC włącza się tak: void xram(void) __attribute__ ((naked)) __attribute__...

    Mikrokontrolery   03 Sty 2006 15:12 Odpowiedzi: 2    Wyświetleń: 1283
  • Jak zadeklarować zmienną w EEPROM AVR-GCC pod adresem 0x01?

    Podpowiedzcie mi prosze, jak zadeklarowac zmienna w pamięci eeprom po adresem 0x01?? bo: #define EEMEM __attribute__((section(".eeprom"))) EEMEM unsigned char ZMIENNA; lokuje ja w pierwszej wolnej komorce czyli 0x00. Moge zadeklarowac wczesniej inna zmienna PUSTĄ tak aby kompilator ulokowal ja pod 0x00 ale nie jest to elegancke. W '51 robilo sie to...

    Mikrokontrolery   28 Lis 2006 08:38 Odpowiedzi: 4    Wyświetleń: 2209
  • AVR-GCC: Czy generuje pętlę nieskończoną po zakończeniu funkcji main()?

    Witam. Dołączę się do tematu. Jakiś czas temu próbowałem umieścić coś w sekcji .fini - niestety bez powodzenia. Dziś nie pamiętam, co dokładnie uC robił po zakończeniu "main", ale na pewno nie wykonywał utworzonej przeze mnie funkcji. Oto kod: void returncode (void) __attribute__ ((section (".fini9"))); void...

    Mikrokontrolery   23 Kwi 2007 13:07 Odpowiedzi: 18    Wyświetleń: 2142
  • [C++11][Cortex-M3/M4] - distortos - obiektowy RTOS dla mikrokontrolerów w C++

    Witam, skryp linkera już zmieniłem, uruchomienie na 16Mhz mam za sobą (STM32F427) Chciałem się tym "pobawić" ale na zewnętrznym ramie. (STM32F429I-DISCO) Mam rozumieć ze nie włączasz żadnych peryferii? i CONFIG_TICK_CLOCK 16000000 używasz tylko do SysTick. Czyli jak jestem w "main" wtedy wszystko sobie uruchamiam? (dla mnie to ma sens ale chce się upewnić...

    Mikrokontrolery ARM   06 Kwi 2021 08:03 Odpowiedzi: 255    Wyświetleń: 38067
  • [STM32/TrueStudio] Jak poprawnie skakać do funkcji w RAM z FLASH na STM32/TrueStudio?

    Umieszczam pojedyńcze funkcje w pamieci ram za pomocą __attribute__((section(".data"))) i funkcje te ładnie lądują w pamięci ram. Jak teraz sprawić, żeby procesor poprawnie skakał pod ich adres w ramie? Do puki funkcja main jest w ramie i wszystkie inne też to jest ok ale gdy z funkcji main znajdującej się w pamięci FLASH skoczę do funkcji znajdującej...

    Mikrokontrolery ARM   02 Lis 2011 18:57 Odpowiedzi: 4    Wyświetleń: 1917
  • Jak zainstalować i uruchomić GNU ARM toolchain na Ubuntu?

    szefolin(at)szefolin-lapek:~/bf210/l... readelf -A lighttpd Attribute Section: aeabi File Attributes Tag_CPU_name: "5TE" Tag_CPU_arch: v5TE Tag_ARM_ISA_use: Yes Tag_THUMB_ISA_use: Thumb-1 Tag_ABI_PCS_wchar_t: 4 Tag_ABI_FP_denormal: Needed Tag_ABI_FP_exceptions: Needed Tag_ABI_FP_number_model:...

    Mikrokontrolery   03 Lut 2012 10:12 Odpowiedzi: 92    Wyświetleń: 17833
  • AVR Boot Loader - który ładnie i szybko działa / USB

    Witam, niech ktoś łaskawy mnie oświeci :) bo dawno nic nie "klepałem" na AVR'ki - co to robi, dlaczego i poco :P void __init0(void) __attribute__((naked, section(".init0"))... void __init0(void) { asm volatile( "out %0, %A2" "\n\t" "out %1, %B2" "\n\t"...

    DIY Konstrukcje   24 Sty 2017 17:21 Odpowiedzi: 252    Wyświetleń: 114711
  • [atmega32][C] - kalibracja ACS712 - błędne odczyty

    Nie wiem co jeszcze napisać. ADC na rym kodzie działa dobrze a chyba jasno określiłem w tytule o co chodzi i zaznaczyłem w kodzie niewłaściwy sposób "wyzerowania" "wyskalowania" pomiaru aby pokazywał faktyczną wartość przepływającego prądu a nie cuda niewidy. Pre-definicja ADC [syntax=csharp] //********** definicje zmiennych dla ADC volatile uint16_t...

    Mikrokontrolery AVR   10 Sie 2014 11:49 Odpowiedzi: 9    Wyświetleń: 2187
  • STM32 - ZL29ARM - Uruchamianie płytki bez bibliotek

    Korzystam z przykładu od Freddiego stm32cl_blink_led-1.2.1-120107 i tam w vectors.c jest właśnie funkcja Default_Handler która kręci się w kółko... Poza tym zadeklarowanych jest dużo funkcji w tym: [syntax=c]// System tick timer void SysTick_Handler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler")));[/syntax] oraz: [syntax=c] void Reset_Handler(void);...

    Mikrokontrolery ARM   13 Lut 2013 10:14 Odpowiedzi: 99    Wyświetleń: 15504
  • [GCC ARM] Jak ustawić stały adres dla zmiennej uint32 w projekcie?

    Tak oczywiście. Linker skrypt trzeba odpowiednio zmodyfikować, dbając o to by nie nałożyć na siebie sekcji, choć i tak kompilator tego nie zaakceptuje. np taka sekcja. [syntax=c]mojalokalizacja 0x70000: { *(.miejsce1); } >FLASH [/syntax] i deklaracja funkcji: [syntax=c]void foo(void) __attribute__((section(".miejsce1")));[/... Spowoduje umieszczenie...

    Programowanie   25 Cze 2018 10:24 Odpowiedzi: 19    Wyświetleń: 849
  • ARM GCC - Wyjaśnienie wskaźników do funkcji i rzutowania w C

    Pierwszy zapis o który pytasz, to tablica wskaźników na funkcję, która to funkcja nie zwraca wartości i nie przyjmuje wartości. Zapis const oznacza, że tablicy nie będziemy modyfikować. Zapis, moim zdaniem bardziej czytelny, który sam stosuję w takim przypadku (z głowy): typedef void (*pVector_t)(void); __attribute__ ((used,...

    Mikrokontrolery ARM   11 Kwi 2013 13:21 Odpowiedzi: 4    Wyświetleń: 1353
  • [Atmega8] [Atmega8][C] Zawieszanie się procesora przy zakłóceniach i2c, watchdog nie pomaga

    Miałem ten sam problem. Pół dnia szukałem błędu, myślałem, że to hardware, ale to było bez sensu, bo po dołączeniu zasilania działało, a po resecie watchdoga zawieszka (ciągłe resetowanie). Okazało się, że po resecie watchdog nadal działa i to z najmniejszym czasem zadziałania (około 15ms) i nawet jak dawałem w main() wdt_disable() to nie pomagało....

    Mikrokontrolery AVR   08 Paź 2008 12:49 Odpowiedzi: 12    Wyświetleń: 4147
  • Kinetis K60 - Funkcja w RAMie, bezpośrednio czy kopiować

    Witam, Spotkałem się z następującymi metodami umieszczania fukcji w pamięci RAM: przez dyrektywę preprocesora [syntax=c] __attribute__( ( long_call, section(".codeRam") ) ) void ram_foobar (void) { ... } [/syntax] oraz przez kopiowanie kodu funkcji bajt po bajcie do RAMu: [syntax=c] __attribute__((section(".codeRam"))) Byte buffer[128]; #define...

    Mikrokontrolery ARM   24 Maj 2016 06:24 Odpowiedzi: 10    Wyświetleń: 948
  • ATmega324PA - zmiana taktowania po resecie przez WDT, jak wykonać soft reset?

    Prawie dobrze, tylko trochę nie doczytałeś :) , możesz to zrobić tak jak zacząłeś wpisując sam do rejestru WDTCSR, ale musisz zrobić to w dwóch krokach. Najpierw odblokować zabezpieczenie ustawiając w rejestrze bity WDCE oraz WDE (istotna jest tutaj suma logiczna z zawartością rejestru, żeby nie wyzerować preskalera i nie spowodować kolejnego resetu...

    Mikrokontrolery AVR   04 Cze 2020 09:48 Odpowiedzi: 6    Wyświetleń: 441
  • [LPC2148] Jak włączyć dodatkowe 8KB RAM w LPC2148 dla USB DMA?

    Trochę inaczej. Musisz wymusić ręczne umieszczenie w wybranej sekcji: uint32_t variable __attribute__ ((section(".xxx_data"))); Pamiętaj o kropce przed xxx_data, bo tak się ta sekcja nazywa: -> *(.xxx_data); Pamiętaj też o tym, że .xxx_data musisz zainicjalizować w startupie (kopiować z FLASH spod adresu __xxx_data_init_start do RAM __xxx_data_start),...

    Mikrokontrolery ARM   14 Wrz 2009 13:57 Odpowiedzi: 14    Wyświetleń: 1763
  • STM32 - GCC: Jak umieścić tablicę w środkowej części pamięci flash?

    Witam Chciałem umieścić tablice pod stałym adresem w pamieci flash, ale nie na koncu flasha. Do tej pory robiłem to tak: wycinek z pliku linkiera dla GCC [syntax=c] MEMORY { rom (rx): org = 0x08000000, len = 192k var (rx) : org = 0x08030000, len = 64k ram (rwx): org = 0x20000000, len = 64k } .... SECTIONS { .dane : { KEEP(*(.dane)) *(.dane*) } >var...

    Mikrokontrolery ARM   22 Lip 2015 09:07 Odpowiedzi: 5    Wyświetleń: 813
  • [C] Jak przenieść .data i .bss do XRAM na Atmega128 w C (WinAvr, AvrStudio)?

    Da się w AVR studio - w opcjach projektu masz memory settings - tam możesz zdefiniować własne segmenty, lub przesunąć już istniejące - wystarczy je ponownie zdefiniować z nowym adresem początku. Zmienne jeśli nie mają trafić do standardowych segmentów definiujesz z odpowiednim atrybutem __attribute__ ((section (".XMEM"))), gdzie XMEM to nazwa segmentu...

    Mikrokontrolery AVR   25 Cze 2014 22:56 Odpowiedzi: 21    Wyświetleń: 6864
  • Odkrywanie wariantu A9 Minicam: XF16 PB380EA6341 MCU, T25S80 SPI Flash, XR872, Skylark SDK

    sklonowane tutaj dla bezpieczeństwa https://github.com/divadiow/xr872_sdk Czy ktoś próbował zbudować z tego obraz hello world? Może wtedy moglibyśmy znaleźć offset flash w tym 1MB chipie, gdzie moglibyśmy flashować ten hello world... Dodano po 1 Kompilacja pod WSL dotychczasowe doświadczenia: 1. Pobrałem SDK stąd: https://launchpad.net/gcc-arm-embedded/4...

    Smart Home IoT   29 Cze 2025 07:35 Odpowiedzi: 232    Wyświetleń: 9687
  • Jak odczytać adres funkcji __stop_program w AVR-GCC?

    Chciałbym aby program wiedział ile zajmuje pamięci flash. W asm było to proste, to co umieściłem w ostatniej linijce kodu źródłowego (np tekst "END OF CODE", zajmowało ostatnie bajty pamięci, w C tak nie jest, bo w przypadku AVR-GCC teksty znajdują się zaraz za wektorami przerwań. Na szczęście, funcje z sekcji ".fini" znajduja się na końcu kodu: [syntax=avrasm]...

    Mikrokontrolery AVR   21 Gru 2017 09:53 Odpowiedzi: 1    Wyświetleń: 693
  • V-USB (AVR USB) Tanie urządzenie USB w oparciu o AVR

    Panowie, czy któryś z was używał VUSB z pamięcią zewnętrzną RAM ? Ja mam 64k na mojej płytce z atmega128 i niestety gdy dodaje: [syntax=c] void before_main(void) __attribute__((naked)) __attribute__((section(".init3"))) { MCUCR = 1<<SRE; SFIOR = 1<<XMBK | 1<<XMM0; DDRC = 0x80; PORTC &= ~(1<<7); SP = 0xffff; } [/syntax] do...

    Mikrokontrolery AVR   07 Gru 2014 12:39 Odpowiedzi: 181    Wyświetleń: 84362
  • ATmega1284P - Jak zapisać MCUSR do stringa bez użycia zmiennej globalnej?

    Chcę wykorzystać w programie informację o przyczynie resetu procesora. Odczyt rejestru MCUSR realizuję zgodnie z dokumentacją, wiadomo: char MCUSR_string jest o wiele za krótka, mimo, że najdłuższy string ma teoretycznie 22 znaki łącznie z nullem. Wyświetlany napis jest ucięty. Jeśli wydłużę łańcuch do np 40 znaków, to napis pojawia się w całości. Czy...

    Mikrokontrolery AVR   15 Wrz 2015 20:40 Odpowiedzi: 6    Wyświetleń: 816
  • [avr-gcc][m128]zmienne lokalne nie lądują w zew. sramie?

    Program działał bez pamięci zewnętrznej SRAM ale na mniejszych tablicach. Rozumiem, że choćby nie wiem co, na tym procku nie mogę posługiwać się tablicami większymi np. niż 2-3kB, tak, żeby stos miał gdzie się hodować? Dodatkowo pomyślałem, że może w taki sposób można by to zrobić, do makefile LDFLAGS += -Wl,--section-start,.xram=0x801100,--def...

    Mikrokontrolery AVR   02 Gru 2010 12:20 Odpowiedzi: 10    Wyświetleń: 1910
  • Jak poprawnie użyć przerwań INT0 do przełączania programów w C?

    Nawet jakby działało, to pewnego razu stos by się przewrócił :) ------------------------------ Edytowałem, ale chyba robak był szybszy :P Nie ma co kombinować, nawet jak się uda, to program będzie działał np przez 50 przyciśnięć, po czym nastąpi zwiecha. Nie ma też co dyskutować na temat sensu takiegoż programu, gdyż sensu on wówczas mieć nie będzie...

    Mikrokontrolery AVR   28 Lis 2010 21:24 Odpowiedzi: 9    Wyświetleń: 1143
  • Jak dodać sumę kontrolną do firmware'u dla bootloadera w osobnych projektach?

    W przypadku LPC i LPCXpresso ( bo z tego głównie korzystam ) nie muszę martwić się o modyfikacje skryptu linkera, bo o to już zadbali deweloperzy LPCXpresso. Dodali sekcję .after_vectors i u mnie to sprowadza się tylko do dodania atrybutu __attribute__ ((section( .after_vectors ))) do definicji struktury. Nie ma znaczenia teraz jakiej wielkości jest...

    Mikrokontrolery   10 Sie 2016 23:11 Odpowiedzi: 44    Wyświetleń: 2079
  • [STM32] Jak wymusić kolejność danych w sekcji eeprom STM32 przy optymalizacji GCC?

    Witam Mam w programie stworzoną sekcje eeprom które umieszcza dane pod adres 0x808000 [syntax=c] #define EEP __attribute__ ((section(".eeprom"))) const uint8_t EEP EEP_boot=0x1; const uint8_t EEP EEP_init=0x1; const uint8_t EEP EEP_name[32]; const uint32_t EEP EEP_code=0x34333231;[/syntax] Jak robiłe kompilację z wyłaczona optymalizacją (OPTIMIZATION...

    Mikrokontrolery ARM   28 Lip 2014 10:05 Odpowiedzi: 4    Wyświetleń: 1305
  • AvrProg - jak zautomatyzować programowanie i ustawianie fuse bitów w Atmega8?

    Otóż plik elf generowany jest podczas każdej kompilacji projektu w avrstudio. Dodają w pliku main takie dyrektywy: FUSES={ .low=0xFF, .high=0xD9, };//External oscilator 16MHz, SPIEN LOCKBITS = 0xF0;//readout protection typedef struct { unsigned char B2; unsigned char B1; unsigned char B0; } __signature_t; #define SIGNATURE __signature_t...

    Mikrokontrolery AVR   03 Lis 2013 21:20 Odpowiedzi: 11    Wyświetleń: 2193
  • HEXLoader - bootloader AVR z obsluga HEX (bez softu na PC!)

    Odgrzeję kotleta. Spędzam popołudnie wraz z tym projektem i niestety jest problem z odczytem drugiej linii hexa. Pierwsza linia jest ok, dostaję odpowiedź '+', a przy następnej wiesza się w pętli gdy czeka na pierwszy znak tj ':' i program staruje od początku. Kompetnie nie wiem dlaczego, gdy czeka na drugą linię tylko wchodzi do funkcji z petlą : static...

    DIY Konstrukcje   16 Gru 2022 00:43 Odpowiedzi: 20    Wyświetleń: 12104
  • Jak umieścić skompilowany plik pod konkretnym adr. w STM32 ?

    Definiujesz w MEMORY obszar, który ma konkretny adres i konkretną długość (oczywiście wtedy z pozostałych obszarów trzeba ten zakres wykluczyc). Potem w SECTIONS dodajesz sobie jakąś sekcję umieszczoną w tym obszarze. Można dodać kilka sekcji, a ich adresy początkowe ustawiać poprzez kropkę (". = 0x12345678;"). Zawartość plików które tam muszą być umieścisz...

    Mikrokontrolery ARM   27 Paź 2009 12:10 Odpowiedzi: 3    Wyświetleń: 1696
  • LCD 4x20 z przesuwanym i migającym kursorem w 4 wierszu

    Dzięki- zwykle mam rano dylemat: Czy wziąć tę grubszą książkę do C czy tę lżejszą. Do czytania w metrze i autobusie. Ale co z funkcją do zmiany kanałów- to się nie da tak prosto dodawać jak kanały będą różnicowe ze wzmocnieniem. A jeszcze można dodać kalibrację prądu jak się da np. MUX 01000 a potem MUX 01001 margas- chyba jeszcze o tym nie wiesz. I...

    Mikrokontrolery AVR   06 Wrz 2010 22:14 Odpowiedzi: 122    Wyświetleń: 9146
  • AVR-GCC: Umieszczanie kodu w określonym miejscu pamięci, odpowiednik .org

    Może jakiś link na którego jeszcze nie "wpadłem" A proszę Cię bardzo, ba jeżeli instalowałeś kompletny avr-gcc, to masz to nawet na dysku :P : http://www.nsc.res.in/~elab/AVR/avr-libc... How do I relocate code to a fixed address? W programie, za prototypem funkcji w przypadku deklaracji, lub z tego co pamietam...

    Mikrokontrolery   29 Cze 2006 23:50 Odpowiedzi: 8    Wyświetleń: 1487
  • [LPC1765][Codesourcery+Eclipse] Code Read Protection

    Przed chwilką wyczytałem w którymś z pdfów od NXP coś takiego.. W kodzie dodałem #define CRP2_MAGIC 0x87654321 #define CURRENT_CRP_SETTING CRP2_MAGIC __attribute__ ((section(".crp"&#... const uint32_t CRP_WORD = CURRENT_CRP_SETTING; natomiast fragment skryptu linkera zmodyfikowałem następująco: SECTIONS { .text :...

    Mikrokontrolery ARM   13 Gru 2010 12:29 Odpowiedzi: 6    Wyświetleń: 1772
  • ATMEGA4809 CURIOSITY NANO

    tmf- jestem ciekawy co znajdziesz. Ja szukałem i po za dokumentem takim jak ten (i analogiczne chyba dla AVR DA czy megaAVR seri 0): https://www.microchip.com/content/dam/mc... to niewiele znalazłem i z tego niewiele wynika. Ten manual jest...

    Artykuły   22 Lis 2021 16:01 Odpowiedzi: 18    Wyświetleń: 3888
  • [STM32F4] - SSD1289 z DMA wypełnia tylko 20% ekranu, reszta nie naruszona

    Jeżeli zrobię bufor w pamięci zewnętrznej SRAM i prześlę go bez użycia DMA przy użyciu tego kodu: [syntax=cpp]uint16_t screen[SSD1289::MAX_X * SSD1289::MAX_Y] __attribute__ ((section(".extram"))); int main() { SSD1289::init(); SRAM::init(); for(uint32_t i = 0; i < (SSD1289::MAX_X * SSD1289::MAX_Y); i++) { screen[i] = SSD1289::BLUE; } SSD1289::setCursor(0,...

    Mikrokontrolery ARM   15 Maj 2015 12:10 Odpowiedzi: 4    Wyświetleń: 999
  • ATmega1284p - Zawieszenie po resecie z watchdoga przy AES Bootloader GCC

    Witam, skompilowałem AES bootloader (pod gcc). W zasadzie wszystko działa jak powinno poza jednym wyjątkiem. Jeśli zostanie wywołany reset z watchdoga procesor się zawiesza, nie pomaga sprzętowy reset, pozostaje odłączenie zasilania. Fusebity HIGH mam ustawione na D8. Początek bootloadera mam ustawiony na .text=0x1E000. Jeśli ustawię fusebity HIGH na...

    Mikrokontrolery AVR   24 Paź 2016 18:00 Odpowiedzi: 6    Wyświetleń: 1119