REKLAMA

inline assembler

Znaleziono około 74 wyników dla: inline assembler
  • [ARM-Assembler][STM32] Co na początek ?

    asm cortexa-m3 jest naprawdę prosty. wystarczy się zapoznać z dokumentacją, którą producent rdzenia udostępnia. Ja pisałem całe funkcje w tym asmie, bo inline assembler nie jest obslugiwany w keilu dla rozkazów thumb2 (nie wiem czemu, czasami byloby wygodnie). Często jednak jest tak, że kod C wygenerowany przez kompilator jest jednak lepszy niż to,...

    Mikrokontrolery ARM   13 Lip 2011 10:06 Odpowiedzi: 20    Wyświetleń: 12394
  • Avr wstawka assemblerowa. Sposób wskazywania właściwej komórki w tablicy.

    Ciągle możesz to zrobić, tylko użyj innych rejestrów, które są wolne. Tu masz o wstawkach: Inna sprawa, że może źle wybrałeś procesor, lepiej pewnie by poszło z XMega, raz, że działa do 32MHz, a dwa, że ma DMA, które może wyrzucać dane na DAC, bez konieczności robienia tego programowo. Co do rejestrów indeksowych - niestety 3, które posiada AVR to nie...

    Mikrokontrolery AVR   17 Maj 2011 11:36 Odpowiedzi: 5    Wyświetleń: 1659
  • REKLAMA
  • Assembler - Program do pisania

    No nie przesadzajmy, nie jest aż tak źle. Systemu operacyjnego nie musisz znać w całości, bo chyba nikt nie używa wszystkich jego funkcji, przynajmniej świadomie. Inna rzecz, ze jak już zaczniesz coś robić to ci się nie spodoba to co daje SO i zechcesz sam napisać jakiś mały kawałek lepiej, zwykle z powodzeniem. Kilka zastosowań assemblera jednak się...

    Programowanie Początkujący   28 Lut 2015 11:41 Odpowiedzi: 12    Wyświetleń: 3762
  • ARM GCC. Cortex-M4. Funkcja w assemblerze. Parametry na stosie. Instrukcje specyficzne.

    No tutaj widać że masz zarezerwowane miejsce na stosie dla przekazywanych parametrów i nic nie jest "nadpisywane". Szczerze powiem nie wiem o co Ci chodzi. O to że spodziewałem się standardowego sposobu przekazywania parametrów, czyli kładzenia na stos (powodującego rozrost stosu). Tak przy okazji to jak dajesz taki kod do analizy to lepiej jak byś...

    Mikrokontrolery ARM   10 Cze 2021 18:50 Odpowiedzi: 9    Wyświetleń: 666
  • REKLAMA
  • Zrozumienie wstawki assemblerowej w kodzie C - AVR 8 bit

    Lektury na początek:

    Programowanie Początkujący   15 Mar 2022 18:58 Odpowiedzi: 4    Wyświetleń: 312
  • [C] - Funkcja typu 'inline' - zmienne lokalne.

    Dla mnie zmienia. Nie zmienia. Semantyka kodu pozostaje identyczna. Piszesz o optymalizacjach, tym się zajmuje optymalizator. Jeśli jest sprytny, to być może użyje zmiennych ze stosu funkcji wywołującej, a jeśli się nie da, to i tak zaalokuje nowe zmienne na stosie. Ty nie masz nad tym bezpośredniej kontroli, możesz co najwyżej kombinować z flagami...

    Programowanie   17 Lis 2014 16:14 Odpowiedzi: 5    Wyświetleń: 894
  • REKLAMA
  • Assembler a C++ czyli wybór szybciej czy taniej...

    Podejmę wątek kolegi BoskiDialer i również poprę funkcje statyczne. Zapewne nie jest to powszechna wiedza, ale jeśli funkcja nie jest statyczna, dla kompilatora jest globalna - musi więc on założyć, że może ona zostać wywołana przez dowolne źródło w dowolnym momencie. Jeśli zaś funkcja jest statyczna dla danego modułu, to kompilator wie, że jedynie...

    Mikrokontrolery AVR   08 Wrz 2010 14:25 Odpowiedzi: 144    Wyświetleń: 20725
  • assembler + C - obsługa przewania

    No ale co masz za problem z tym inline?

    Mikrokontrolery AVR   04 Lut 2010 22:27 Odpowiedzi: 17    Wyświetleń: 1722
  • [assembler] wstawka w AT&T

    Poczytaj tutaj: Do zmiennej odwołujesz się jako %0, %1 itp: const int c = 55; __asm__("movl %0, %%eax;\n\t" : /* bez operandów wyjściowych */ : "r"(c) /* c jest załadowane do dowolnego rejestru przed asm */ : "%eax" /* wartość EAX jest nadpisywana w kodzie asm */ ); Zapisanie wyniku operacji...

    Programowanie Początkujący   05 Sty 2011 00:07 Odpowiedzi: 1    Wyświetleń: 1562
  • [8051][SDCC][MIDE-51] Procedury Assemblera w C

    Z tego co widzę z MIDE nie da się. Jedyne wyjście to używania dyrektywy, które pozwalają zrobić w ciele funkcji (tzw. INLINE). sdas8051 -los asm_func.asm sdcc main.c asm_func.rel Wtedy w pliku asm_func.asm funkcja w asemblerze napisana przez Ciebie, a w main.c zawartość kodu w C. BTW. Może lepszy niż MIDE będzie dla Ciebie [url=]Link

    Mikrokontrolery   30 Sie 2011 20:48 Odpowiedzi: 5    Wyświetleń: 2778
  • REKLAMA
  • [Visual C++] Wstawka z asemblera.

    eh... minuta szukania w helpie: C++ Language Reference Writing Functions with Inline Assembly Using C or C++ in __asm Blocks Microsoft Specific If you write a function with inline assembly code, it's easy to pass arguments to the function and return a value from it. The following examples compare a function first written for a separate assembler and...

    Programowanie   02 Lut 2004 00:55 Odpowiedzi: 5    Wyświetleń: 5281
  • W jaki sposób z c odwoływać się do flag mikroprocesora ?

    Cytat z dokumentacji IAR dla AVR, rozdział "Efficient coding techniques": "Avoid using inline assembler. Instead, try writing the code in C or Embedded C++, use intrinsic functions, or write a separate assembler module." W kompilatorze do MSP430 też kiedyś widziałem podobny tekst. I zgadzam się z tym. Niestety w niektórych szczególnych przypadkach...

    Programowanie   29 Lis 2007 21:46 Odpowiedzi: 10    Wyświetleń: 1937
  • C++, problem ze skąpilowaniem

    GCC (którego używa DevCpp) nie obsługuje/obsługuje zupełnie inaczej kod assemblerowey wewnątrz funkcji (inline assembler). Dla Buildera/Visual C++ ten kod jest w zasadzie poprawny. #include <cstdlib> #include <stdio> using namespace std; void zapisz(char); int main(int argc, char *argv[]) { char liczba; printf("Wpisz...

    Programowanie   06 Mar 2005 17:17 Odpowiedzi: 6    Wyświetleń: 1611
  • odwołanie do konkretnego rejestru avr język C

    Zamiast pytać o to jak odwołać się do tego rejestru (co prawda można tworząc zmienną przez jakas_zmienna >>= 1; if(PS_WEJ&0x01) jakas_zmienna |= 0x80; nie tracąc na szybkości (3 cykle przy rejestrze IO dostępnym przez sbic/sbis, 3 przy innym rejestrze [sbrc/sbrs], 5 przy komórce pamięci). Ze względu na skrajny bit można to zoptymalizować,...

    Mikrokontrolery AVR   02 Sty 2009 13:07 Odpowiedzi: 3    Wyświetleń: 1799
  • zmienne i ich wielkość w avrgcc

    gaskoin- to jeszcze- gdzie to jest? No i to: "It may be removed in a future release". No i szukam w manualu- i nic. User manual 1.7.0 No i nie mogę znaleźć: * Toolchain Overview * Memory Areas and Using malloc() * Memory Sections * Data in Program Space * avr-libc and assembler programs * Inline Assembler Cookbook * How to Build a Library * Benchmarks...

    Mikrokontrolery AVR   12 Kwi 2011 19:42 Odpowiedzi: 7    Wyświetleń: 1955
  • AVRGCC & asembler

    Wstawki asemblerowe w AVRGCC można umieszczać w programie po instrukcji "asm volatile", zresztą najlepiej przeczytaj sobie "GCC-AVR Inline Assembler Cookbook" - znajdziesz go pod tym adresem: Pozdrawiam.

    Mikrokontrolery   09 Lip 2012 17:42 Odpowiedzi: 14    Wyświetleń: 4328
  • Keil 3 dla ARM

    jako "plik" ;] Dodano po 2 No tak jak zasejwowalem plik z koncowka *.c to jest juz lepiej czyli kod nabral kolorow ale dalej mam bledy . moze ktos mi powie co jest nie tak w takim krotkim kodzie #include <at91sam7s64.H> int main() { __asm { ADD R7,R6 ; sum up } return 0; } Bledy ktore pokazuje kompilator to : Build...

    Mikrokontrolery   10 Sty 2009 10:39 Odpowiedzi: 18    Wyświetleń: 6708
  • IAR Workbench - inicjacja LCD

    Error asm("nop\n");

    Mikrokontrolery   30 Lip 2007 11:55 Odpowiedzi: 11    Wyświetleń: 1694
  • Atmega128L + pamiec zewnetrzna

    "r" od "=r" różni się tym, że "r" jest stosowane przy wejściu (po drugim dwukropku), a "=r" przy wyjściu (po pierwszym dwukropku). Zmienne tymczasowe dawałem jako wyjściowe ze wstawek aby kompilator nie czepiał się do niezainicjalizowania zmiennej. Jeśli chcesz mieć zmienny adres, to nie możesz korzystać z sts, które zapisuje pod stały adres. Jeśli...

    Mikrokontrolery   29 Lip 2008 12:05 Odpowiedzi: 25    Wyświetleń: 3420
  • AVR i odwieczny problem z EEPROM

    To nie tak. Jak chcesz używać AVR Studio to musisz używać ich funkcji do zapisu / odczytu EEPROM-u. Funkcje kompilatora są napisane jako inline assembler i zapewniają, że opóźnienie między wystawieniem bitu Write Enable i zapisem (lub odczytem) będzie mniejsze niż 4 cykle. Jeżeli sam robisz taki zapis w C, to kompilator generuje ci więcej kodu i warunek...

    Mikrokontrolery AVR   03 Kwi 2009 08:07 Odpowiedzi: 6    Wyświetleń: 2938
  • [LPC1768][C/Keil] początki ARM miganie diod

    W pliku lpc17xx.h są zdefiniowane wszystkie makra odwołujące się do rejestrów peryferii, tak np. [syntax=c] /*------------- General Purpose Input/Output (GPIO) --------------------------*/ typedef struct { __IO uint32_t FIODIR; uint32_t RESERVED0[3]; __IO uint32_t FIOMASK; __IO uint32_t FIOPIN; __IO uint32_t FIOSET; __O uint32_t FIOCLR; } GPIO_TypeDef;...

    Mikrokontrolery ARM   29 Kwi 2012 11:57 Odpowiedzi: 5    Wyświetleń: 3581
  • Asembler/C - Kod startowy do freescale HCS08 - program nie wchodzi do main()

    Witam wszystkich, Próbuję się uporać z problemem od kilku dni, jednak nie bardzo wiem co jest nie tak, a mianowicie próbuje odpalić najprostszy program zmieniający stan na pinach: To jest stan po kilku kliknięciach step over, dodam że program potrzebuje 7 kliknięć step over aby zacząć się wykonywać ponownie. Będąc na rozkazie w pamięci C000 po kliknięciu...

    Mikrokontrolery ARM   12 Lis 2012 22:29 Odpowiedzi: 1    Wyświetleń: 1671
  • ATMEGA2560 - Bootloader SD nie wgrywa długich plików

    Nie miałem za bardzo czasu ale wracam do nierozwiązanego problemu. Tak wyglądają screeny po wywołaniu programu CRCGEN. Pliki wgrane programatorem działają poprawnie a przez bootloader tylko ten krótki (choć po przemieleniu ma także 248kB). Tak wywołuję CRCGEN [syntax=c](at)echo off hex2bin blink.hex CRCGEN-NEW blink.bin 0x3e000 0X30314753 0x0000 pause[/syntax]...

    Mikrokontrolery AVR   01 Paź 2016 18:03 Odpowiedzi: 15    Wyświetleń: 2208
  • [C/ASM][CORTEX-M3] - Mix C i ASM

    Tak się składa, że wiem, że R0 jest wolny a każdy inny zajęty. Dziś jest wolny, jutro jest zajęty - obyś się nie przejechał. No i coś takiego nie działa, bo zmienna StackPointer Działa - potem R4 będzie przepisane do R0 żeby prawidłowo zwrócić wynik. jest ładowana do R4, który to ma być zrzucony instrukcją STMDB Wstawki assemblerowe są dużo bardziej...

    Mikrokontrolery ARM   30 Mar 2013 11:20 Odpowiedzi: 10    Wyświetleń: 1773
  • [C]Generacja pliku ELF - makefile

    Moze zle sie wyrazilem - nie tyle skladnia pozostaje dla mnie niejasna, co nie umiem stwierdzic, dlaczego nie jest generowany plik ELF, pomimo tego, ze w pliku make istnieje regula (chyba) za to odpowiedzialna. # MCU name MCU = attiny45 # Processr frequency. # This will define a symbol, F_CPU, in all source code files equal to the # processor frequency....

    Mikrokontrolery AVR   05 Cze 2008 13:18 Odpowiedzi: 4    Wyświetleń: 7706
  • Diagnozer joysticków (np. do Pegasusa) na Atmega 8

    Fajna konstrukcja, choć uważam, że z minionej epoki. (teraz załóżmy, że cofamy się z 10/18 lat) Mógłbyś przejść z takim urządzeniem na bazar używanego sprzętu i wybrać tylko działające joysticki i je sprzedawać xD, lub prowadzić szybką naprawę. Bardzo podobają mi się listingi binarnego kodu wraz z opisem, sam to robiłeś? W kontekście macie jakiś pomysł...

    DIY Konstrukcje   17 Lis 2015 21:57 Odpowiedzi: 4    Wyświetleń: 6561
  • Tablica przesunięcia bitowe

    Ok, punkty przesłałem. Mam jeszcze pytanko odnośnie tego inline. Jeśli odpalę debuggera to czas wykonywania się tej funkcji jest taki sam z volatile jak i bez. Jeśli używasz debuggera to sprawdź kod assemblerowy, jeśli funkcja wywoływana jest callem to najprawdopodobniej kompilator zignorował twój inline. Aby wymusić spróbuj w pliku nagłówkowym .h...

    Mikrokontrolery AVR   24 Lip 2011 14:37 Odpowiedzi: 18    Wyświetleń: 2576
  • XMega AVR - Jak zadeklarować indeksowaną zmienną bitową w C

    jeśli wolno na chwilę wtrącić coś bardziej podstawowego , Ja zadam jeszcze bardziej podstawowe pytanie. Te całe magiczne optymalizacje związane z próbami wymuszenia na kompilatorze inline'owania funkcji - one mają jakiś normalny cel? Czy Twój program działa zbyt wolno do REALNEGO zadania jakie przed nim postawiłeś? Może nie wyrabia się w rzeczywistej...

    Mikrokontrolery AVR   17 Gru 2016 00:04 Odpowiedzi: 106    Wyświetleń: 4086
  • Sterownik pompy kolektora słonecznego

    Moim zdaniem bardzo fajny projekt, jeśli chodzi o zaoszczędzenie miejsca na program, hym.. pewnie trochę można było zaoszczędzić gdybyś funkcje pomocnicze nie deklarował jako inline. Generalnie obsługa kilku czujników na jednej szynie nie jest zagadnieniem banalnie łatwym. Do czego stosujesz wstawki assemblerowe z instrukcją NOP? Rozumiem, że to wyczekanie,...

    DIY Konstrukcje   06 Lis 2010 18:23 Odpowiedzi: 23    Wyświetleń: 19024
  • AVR Boot Loader - który ładnie i szybko działa / USB

    To normalne, że podczas kompilacji występuję ten błąd ? (wytłuszczona część kodu podana pod listingiem) C:\Documents and Settings\XyX\Pulpit\bootloader_c_oraz_pr... all avr-gcc -Wall -Os -I. -mmcu=atmega8 -D START_DELAY_SEC=5 -D UC=atmega8 -D BAUD=9600 -D F_CPU=8000000 -D BOOTSTART=0x1E00 -fno-inline-small-functions -fno-split-wide-types...

    DIY Konstrukcje   24 Sty 2017 17:21 Odpowiedzi: 252    Wyświetleń: 113220
  • Pisanie programów i używanie bibliotek w C i Asemblerze

    Kto nie użył nigdy INLINE w C niech pierwszy rzuci kamień... No i miłej zabawy w procesy krytyczne czasowo robione w języku wysokiego poziomu. Niestety, ale najczęściej przerwania w ASM, a aplikacja w C (przynajmniej ja tak robiłem w czasach Borlandowskiego Turbo C). W pełni kontrolowalne miał przerwania, praktycznie z każdego rozkazu można było się...

    Mikrokontrolery   16 Gru 2016 02:36 Odpowiedzi: 260    Wyświetleń: 10833
  • ERROR w AVR STUDIO po dodaniu biblioteki

    makefile ########################################... # Makefile for the project projekt ########################################... ## General Flags PROJECT = projekt MCU = atmega8 TARGET = projekt.elf CC = avr-gcc ## Options common to compile, link and assembly rules COMMON = -mmcu=$(MCU)...

    Mikrokontrolery AVR   26 Sie 2010 18:16 Odpowiedzi: 8    Wyświetleń: 2259
  • Losowe błędy w pracy mikrokontrolera - jak je przyspieszyć?

    Każdy procek ma jakieś tam systemowe funkcje biblioteczne, które można zastosować, ale zazwyczaj zajmują one więcej miejsca niż proste rozkazy assemblerowe. (dochodzi chociażby rozkaz skoku do procedury). Czy warto z nich jednak korzystać? Np. dla STM'ów: __disable_irq (); będzie lepsze niz: __ASM volatile ("cpsid i"); ? "Twoja własna wersja" nie będzie...

    Mikrokontrolery   29 Sty 2013 12:59 Odpowiedzi: 31    Wyświetleń: 4179
  • STM32F030 - init SPI DMA + Keil uVision5

    Po _powrocie_ z funkcji. Ewentualnie postaw sobie breakpointa w HAL_DMA_Start_IT() i wtedy zobacz. Do momentu w którym kompilator nie napotka czegoś co można by nazwać "ogólnym miejscem synchronizacji" (wywołanie funkcji nie-inline, powrót z funkcji nie-inline, dostęp do pamięci oznaczonej jako volatile, ...) to może sobie poprzestawiać te instrukcje...

    Mikrokontrolery ARM   03 Mar 2017 12:08 Odpowiedzi: 8    Wyświetleń: 1044
  • [AVR] c + biblioteka w asemblerze

    Dokladnie tak samo. Pliki naglowkowe udostepniaja prototyp funkcji, na etapie kompilacji nic wiecej nie jest potrzebne. Dopiero linker to sklada razem, wiec zeby potrafil polaczyc twoj kod z tym w asm, musisz w asmie wyeksportowac nazwy publiczne (widziane w innych modulach) dyrektywa .global. Ale tu pewien bol jest - jesli obsluge LCD masz napisana...

    Mikrokontrolery AVR   10 Sty 2010 23:21 Odpowiedzi: 9    Wyświetleń: 2727
  • Wstawka asm do funkcji w [C] - argument na PORT

    Z pewnym opóźnieniem z powodu małej awarii, ale oto przykład: [syntax=c] #include <avr/io.h> inline void write_data(uint16_t data) { PORTE_OUT=data>>8; PORTF_OUT=data; } int main() { write_data(0xffaa); } [/syntax] I wygenerowany kod: [syntax=asm] 00000218 <main>: #include <avr/io.h> inline void write_data(uint16_t data) { PORTE_OUT=data>>8;...

    Mikrokontrolery AVR   29 Paź 2011 19:32 Odpowiedzi: 15    Wyświetleń: 2636
  • Przykładowe projekty dla ARMów

    Zachęcony opiniami z innych tematów postanowiłem dopisać jakie są plany na kolejny release tego przykładu Zasadniczo mam już gotowy "startup w C". Cudzysłowy dlatego, że niestety ta zabawa wymaga funkcji inline, które implementują jedynie rozkazy assemblera (takie jak MSR choćby), również pętle inicjalizujące .data i zerujące .bss są napisane obecnie...

    Mikrokontrolery ARM   21 Maj 2013 09:25 Odpowiedzi: 341    Wyświetleń: 100515
  • XMega128 - Zwiększanie liczby czterobajtowej w Asemmblerze

    Mój program który stworzyłem na swoje potrzeby analizuje plik OBJ tworzony przez kompilator i pokazuje które rejestry zostały użyte podczas obsługi przerwania. Pozwala to na użycie parametru Nosave i znaczne przyspieszenie w przypadku Bascoma. Plik OBJ można oczywiście załadować do Atmel Studio i patrzeć na Assemblera, ale to niewygodne bo nie wszystkie...

    Mikrokontrolery AVR   31 Paź 2015 18:38 Odpowiedzi: 18    Wyświetleń: 1119
  • Debuger jako narzędzie marnujące czas programisty?

    Oczywiście że chodzi mi o optymalizację wprowadzoną przez kompilator, na optymalizację algorytmu przez użytkownika zawsze w jakimś stopniu chronią UT. Ja miałem problem właśnie z volatile, jakimś cudem kompilator zoptymalizował zmienną w dość niefortunny sposób co powodowało wywalenie się kodu. Co ciekawsze było to w examplu od ST a kompilowane pod...

    Projektowanie i Tworzenie Po godzinach   20 Lip 2018 20:36 Odpowiedzi: 58    Wyświetleń: 2886
  • Wszystko o ARM (LPCxxxx) i programowaniu w asm i C.

    Nie wiem po co każdą instrukcję ldr Twój program wykonuje warunkowo. To akurat jest oczywiste. Procesor bierze to, co jest. Taki ma program, to taki wykonuje ;p Powinieneś raczej zapytać dlaczego napisałem taki program ;p Otóż nie wiedziałem co robi instrukcja ldrlo. W opisie instrukcji ldr nie było nic o zwiększaniu rejestru wskaźnikowego. Myślałem...

    Mikrokontrolery ARM   28 Lis 2009 17:35 Odpowiedzi: 141    Wyświetleń: 16873
  • Atmega 32 freemodbus win avr

    ok trochę czasu mi to zajeło ale udało mi sie przejść ten problem po przez edycje pliku makefile wyedytowałem 3 linie odpowiedzialne za wybór kompilatora i poszło. CC=avr-gcc OBJCOPY=avr-objcopy AVRDUDE=avrdude ale powstał kolejny problem mianowicie problem z plikiem demo.cof wiem że win avr zrezygnował z coff ale niewim jak poprawic makefile aby ten...

    Mikrokontrolery AVR   03 Maj 2011 18:47 Odpowiedzi: 18    Wyświetleń: 6208
  • STM32F107/C - Błąd w pakowaniu struktur (-DPACK_STRUCT_END)

    Witam, muszę przekopiować projekt pod STM32F107 (Działający już) na CrossWorksie -> Eclipse, problem leży w makefile'u, ale nie mogę podejrzeć co robi ten crossworksowy, mój wygląda następująco: [syntax=c] ########################################... # Start of default section # TRGT = arm-none-eabi-...

    Mikrokontrolery ARM   22 Lip 2013 11:27 Odpowiedzi: 5    Wyświetleń: 1302
  • [STM32F4][C] - Program wskakuje do _Default_Handler podczas acos() i pow().

    Wszystkie te których używam (sqrtf(), powf(), acosf()) są liczone przez FPU? Niekoniecznie. W Newlib (czyli libm.a) nie ma implementacji specjalnie dla tego koprocesora, jednak jeśli masz włączoną optymalizację, skonfigurowane FPU (opcje kompilacji) i dodaną flagę -ffast-math, to kompilator niektóre z nich potraktuje jako funkcje inline i zastąpi odpowiednimi...

    Mikrokontrolery ARM   12 Kwi 2013 16:04 Odpowiedzi: 16    Wyświetleń: 1944
  • ATtiny13a - avrdude USBaps verifivation error

    Tutaj jest cały log : Dodano po 5 Zaktualizuj sobie soft w programatorze. Problem z tym jest o tyle, że z tego co czytałem (jeśli to nie prawda to poprawcie mnie) do tego potrzebny jest albo drugi programator albo żeby USBaps posiadał zworkę samoprogramowania. Na chwilę obecną dysponuję jedynie jednym programatorem i nie ma on żadnych wyprowadzonych...

    Mikrokontrolery Początkujący   09 Gru 2016 21:05 Odpowiedzi: 8    Wyświetleń: 1026
  • Jakie środowisko programistyczne wybrać do programowania STM32F030R8T6?

    Spróbuje i assemblera do prostych rzeczy Ciekaw jestem ile w swoim RTOS-ie kolega (at)Freddie Chopin napisał asemblera (stawiam ze pewnie ze 100 linijek jak już wyjścia nie miał)? Ja osobiście od dawna (poza kilkoma elementarnymi inline-ami do dsp) ani jednej. Te instrukcje procesora, które ew mogą Ci się przydać masz w CMSIS w postaci wygodnych definicji...

    Mikrokontrolery   31 Sty 2017 21:40 Odpowiedzi: 11    Wyświetleń: 759
  • Port asemblera z IAR do GCC...

    Chcesz to przenieść do avr-gcc? Czy do asemblera? Jeśli do gcc to prościej stworzyć plik .S i dołączyć go do projektu - w plikach .S stosuje się notację praktycznie taką samą jak w asemblerze AVR, jedyne co musisz uwzględnić przenosząc kod to różnice w ABI pomiędzy IAR i avr-gcc.

    Mikrokontrolery AVR   25 Cze 2015 07:14 Odpowiedzi: 9    Wyświetleń: 930
  • AVR Studio 4 problem z działaniem " krok po kroku "

    Po kolei. Jesli na plytce masz interfejs JTAG to mozesz debuggowac w ukladzie. Jesli nie (po ISP sie nie da) to pozostaje ci tylko symulacja programowa. I tu wszystko dziala ci jak nalezy. Funkcje z delay.h sa deklarowane jako inline, dodatkowo kompilator robi optymalizacje wiec nie spodziewaj sie, ze bedziesz szedl linijka po linijce. Zeby tak zrobic...

    Mikrokontrolery   10 Maj 2010 10:02 Odpowiedzi: 11    Wyświetleń: 3017
  • ARM C startup na przykładzie wygenerowanego przez Cube

    Rozumiem, że nie dopuszczasz tutaj rozwiązań oferowanych przez CMSIS, które z poziomu pliku startupa są chyba jednak funkcjami "C". Chodzi Ci o te funkcje inline, wrappery na instrukcje assemblera? Jak kod w C może "przeżyć" że mu podmieniasz nagle stos na zupełnie inny? Nie żebym to sprawdzał, niemniej jednak wydaje mi się, że dowolne czary nie są...

    Mikrokontrolery ARM   26 Sty 2019 14:21 Odpowiedzi: 33    Wyświetleń: 2568
  • AVR C - Obsługa wyświetlacza LCD po TWI

    Witam. Zakupiłem konwerter I2C do wyświetlacza LCD i mam mały problem z jego obsługą. Komunikacja z ekspanderem następuje prawidłowo, jedynie co udało mi się uzyskać to miganie podświetleniem, ale uparty wyświetlacz za choinkę nie chce nic wyświetlić. Schematu konwertera niestety nie posiadam, gdyż producent go nie udostępnia. Kod którego używam prezentuje...

    Mikrokontrolery AVR   17 Kwi 2015 13:44 Odpowiedzi: 6    Wyświetleń: 1815
  • Funkcja delay dla ATMEGA8(L) w C/C++

    Witam Temat być może pojawia się po raz wtóry, ale poprzednie tematy nie rozwiązały problemu. Chcę wykonać prosty zegarek cyfrowy oparty na uC ATMEGA8(L) oraz wyświetlaczu LCD 2x24. Wszystko chodzi bez zarzutów, gdyby nie fakt złego odliczania czasu przez mój uC. Otóż mój ATMEGA8 pracuje z kwarcem zewnętrznym 8MHz + dwa kondensatory ceramiczne 22pF...

    Mikrokontrolery   05 Wrz 2006 16:16 Odpowiedzi: 15    Wyświetleń: 5419
  • Biblioteka V-USB nic nie wystawia na wyjsciach UC

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

    Początkujący Elektronicy   15 Wrz 2012 19:06 Odpowiedzi: 2    Wyświetleń: 1530
  • Uruchamianie zaawansowanych aplikacji C++ na mikrokontrolerach

    Szkoda że im większą popularność zdobywają mikrokontrolery tym więcej powstaje środowisk typu "nic nie musisz wiedzieć by zacząć programować". Bo ja wiem. Ja tam jestem zadowolony z faktu, że w Atmel studio mogę napisać normalny program w pełni obiektowy na małego attiny2313 zamiast męczyć się w assemblerach czy kombinować w C. Przejrzystość kodu i...

    Artykuły   14 Wrz 2021 10:55 Odpowiedzi: 25    Wyświetleń: 3105
  • funkcje asemblera w C (AVRStudio)

    Na avr/gcc jeszcze nie próbowałem, ale jak mi tzreba cos podobnego na innych środowiskach, robie w C pustą funkcję o odpowiedniej nazwie i liście parametrów, każę kompilowac nie do zbioru binarnego tylko do źródła w asemblerze (zwyklwe jest jakaś opcja) i mam szkielecik funckji kompatybilnej z C (jakby w zbiorze .s). Modyfikuję, przepuszczam programem...

    Mikrokontrolery   04 Sty 2007 10:52 Odpowiedzi: 7    Wyświetleń: 2104
  • Atmega32 + LCD nokia 3310

    Hej, tutaj wklejam kod z lekcji 13 ////////////////////////////////////////... // main.c - plik główny programu testującego możliwości wyświetlacza graficznego z telefonu nokia3310 // przeznaczenie: "Programowanie procesorów języku C (EdW)" // // Autor: RadosĹ‚aw Koppel...

    Mikrokontrolery   10 Lis 2011 12:52 Odpowiedzi: 32    Wyświetleń: 9372
  • obsługa LCD z Nokii (PCD 8544)

    Jest to wg projektu z EdW: ////////////////////////////////////////... // harddef.h - definicja sprzętu dla programu testującego możliwości wyświetlacza z noki3310 // przeznaczenie: "Programowanie procesorów w języku C (EdW)" // ////////////////////////////////////////...

    Mikrokontrolery   24 Paź 2013 20:50 Odpowiedzi: 271    Wyświetleń: 132468
  • opóznienia w asemblerze zamiana na C

    Próbuje rozgryść I2C w C, ale napotkałem mały problem. W kursie EDW do opóźnień używane sż wstawki assemblera, którego ni w ząb nie rozumiem. Zastanawiałem się czy jest możliwość zastąpienia ich opóźnieniami pisanymi w C? // Funkcja dłuższych opóźnień #if I2C_nhalf < 3 // Nic #elif I2C_nhalf < 8 static void i2c_xdelay(void) { NOP();...

    Mikrokontrolery   29 Lis 2011 19:14 Odpowiedzi: 3    Wyświetleń: 879
  • ARM LPC2142 KEIL - Nie dzialajace przerwanie IRQ

    Hi Dzieki za komentarze poszedlem w druga strone i teraz instaluje zgodnie z Aha przywrocilem jeszcze z orginalnych przykladow static inline cpu_t get_cpsr(void) { cpu_t val; asm volatile ("mrs %[val], cpsr\n":[val]"=r"(val):); return val; } static inline void set_cpsr(cpu_t val) { asm volatile ("msr cpsr, %[val]\n" ::[val]"r"(val) ); } Nastąpił armagedon,...

    Mikrokontrolery   22 Sie 2013 18:40 Odpowiedzi: 2    Wyświetleń: 1314
  • AVR-GCC - Czas wykonywania funkcji

    Nie jest to możliwe, gdyż optymalizacja _delay jest zabroniona - zawiera ona volatile. Dlatego też napisałem właśnie, że wydaje mi się to dziwne - nie miałem pod ręką kompilatora aby sprawdzić czy tam jest volatile w środku. Czyli mój trop był błędny. Dodatkowo nie ma atrybutu zezwalającego na zastąpienie wywołania wynikiem funkcji (__attribute__(const))....

    Mikrokontrolery AVR   24 Wrz 2013 17:15 Odpowiedzi: 11    Wyświetleń: 2766
  • [Atmega8][avr-gcc] - Obiornik DMX na Atmega8 -właściwy odbiór pakietów

    Witam szanownych forumowiczów! Od niedawna staram się nauczyć języka C na AVR. Postanowiłem zbudować poza migającą diodą LED i całą resztą "mini projektów" odbiornik sygnału DMX. W zamierzeniu chcę zrobić DIMMER PACK (sterowanie jasnością 4 urządzeń, stąd 4 kanały i detekcja przejścia przez zero). Jednak przy pisaniu programu napotkałem dość znaczące...

    Mikrokontrolery Początkujący   25 Wrz 2013 22:33 Odpowiedzi: 0    Wyświetleń: 1314
  • C++ Cortex-Mx - C++ i lużne dywagacje na starcie...

    Nie prościej tak nie kombinować? Funkcje zdefiniowane wewnątrz definicji klasy (zwykle w nagłówku) są domyślnie traktowane jako z atrybutem "inline" i po co kombinować więcej? A już jakieś atrybuty "always_inline", to prosta droga to zabawy w assembler++, bo skoro kompilator uznał, że inline'owanie nie ma sensu, to zapewne tak właśnie jest.

    Mikrokontrolery ARM   29 Maj 2015 10:52 Odpowiedzi: 38    Wyświetleń: 2565
  • Biblioteka delay.h w AVR GCC

    Z opisu funkcji wynika, że pętla używa 8-bitowego licznika. Gdzie w tej funkcji jest odniesienie do licznika.? W tej linii: dec %0 Po prostu jeden z rejestrów jest używany do odliczania opóźnienia i dlatego został "przezwany" licznikiem. Nie ma to nic wspólnego z fizycznymi licznikami/timerami. O wstawkach assemblerowych możesz przeczytać w manualu...

    Mikrokontrolery   30 Cze 2009 08:40 Odpowiedzi: 2    Wyświetleń: 2387
  • General Purpose Registers, przepełnienie?

    Pisząc w C tego nie wiesz i wiedzieć nie będziesz (chyba, że zajrzysz w wygenerowany przez kompilator kod assemblera - co swoją drogą jest czasami przydatne). Nie wiem jak daleko działa REGISTER, ale prawdopodobnie kompilator patrzy bardziej na to jak na mocną sugestię niż 100% wymuszenie, bo co by zrobił gdybyś zrobił 20 zmiennych int jako REGISTER?...

    Mikrokontrolery   17 Paź 2011 19:18 Odpowiedzi: 13    Wyświetleń: 1682
  • Raspberry Pi, nauka asemblera

    Aktualnie mam prototyp programu (napisany naturalnie w asemblerze pod DOSem) ktory rozumie takie cos: ustaw gpio5 jako wejscie ala ustaw gpio6 jako wyjscie bela label: jesli ala ma stan wysoki Musisz nas nauczyć jak w DOSie się programuje RP gpio. Skoro to chodzący prototyp, to szacun. W czasach DOS czy Windows 9X ludzie pisali programy w asemblerze....

    Raspberry Pi i inne SBC   02 Sie 2016 17:54 Odpowiedzi: 35    Wyświetleń: 4071
  • Problem ze wstawkami w asm w Dev CPP

    Assembler nie zna port_addres i port_data. Musisz to przekazać jako argumenty do funkcji ASM, które umieszcza się po dwukropku. Zobacz tutaj są przykłady: Inny sposób to oczywiście to taki jak kolega napisał powyżej, ale nie jest to całkowicie uniwersalne, bo będzie to działać tylko do danych zawartych w argumentach funkcji.

    Programowanie   25 Paź 2009 22:15 Odpowiedzi: 3    Wyświetleń: 1188
  • Sytuacja na rynku procesorów 8 i 32 bitowych

    chociaż assembler arma to juz dla mnie czarna magia wolę c/c++ Widzisz, bo tak naprawdę, to zasada powinna być taka: piszę cały program w C (ew. C++, jeśli to ogromny projekt), natomiast w pewnych, krytycznych miejscach, dajesz funkcję jako inline asm wstawkę. To najlepsze imho połączenie technologii :)

    Mikrokontrolery   08 Lip 2011 21:51 Odpowiedzi: 474    Wyświetleń: 44142
  • [DELPHI] Lazarus - Nie działa kompilator.

    Ścieżki:: $(ProjOutDir)\ reszta pusta Analiza:: Tryb.. :Object Pascal - deflaut.. zaznaczone opcje skladni: operatory w stylu jezyka C.., Pozwalaj na instrukcje LABEL, GOTO (-si), INLINE w stylu C++, Assembler style: domyslne Kod:: OPtymalizacje - Poziom 1; reszta odznaczona, Łączenie:: zaznaczone tylko Wyświetl numery lini.., Aplikacja graficzna win32.....

    Programowanie   01 Wrz 2010 18:37 Odpowiedzi: 6    Wyświetleń: 2922
  • [C][AVR] - wskaźnik do wskaźnika w strtok_r

    Prawdopodobnie znowu optymalizacja jest przyczyną. Zmienna lokalna char *reszta; jest po optymalizacji w rejestrze, a do rejestru nie mozna wyłuskac adresu. Żaden kompilator nie umieści takiej zmiennej w rejestrze, skoro gdzieśtam potrzebny jest jej adres. Tak samo funkcje statyczne nigdy nie zostaną za-inline-owane jeśli gdzieś używane są ich adresy....

    Mikrokontrolery   30 Lis 2010 11:26 Odpowiedzi: 17    Wyświetleń: 2676
  • [STM32] [C] [CMSIS] - #ifdef brak deklaracji stalej

    ARM7, Cortex-M3 to - powiedzmy - "handlowe nazwy" architektur, odpowiednio ARMv4 i ARMv7-M. Oczywiście nowsza jest ARMv7 czyli własnie Cortex. ARM7 jest już nieco przestarzały, a układ LPC2106 to w ogóle antyk - NXP od czasu tego układu wypuściło bardzo wiele fajnych układów z tym rdzeniem, dokładnie chodzi o rodziny LPC23xx i LPC24xx - LPC2106 to chyba...

    Mikrokontrolery ARM   19 Sty 2011 16:19 Odpowiedzi: 13    Wyświetleń: 4907
  • Konwerter plików *.asm do *.c - poszukuję.

    Tu nie chodzi o zapotrzebowanie, fizycznie jest to trudne do wykonania. Zauważcie, że przy kompilacji, optymalizator dużą część kodu zjada, czasem tnie na kawałki i trochę go przekłada. Nigdy nikt nie będzie w stanie przetłumaczyć ASM na logicznie napisane C. Choćby z tego powodu, jaki podałem w tym poście wyżej, lub z takiego, że w asmie makra typu...

    Mikrokontrolery Początkujący   09 Kwi 2012 13:07 Odpowiedzi: 20    Wyświetleń: 3355
  • Regulator PID do ekspresu do kawy

    Tak jak obiecałem w pierwszym poście, załączyłem do tematu źródła. Kod jest napisany w C, kompilator gcc-avr w wersji 4.5.3-4 + biblioteki avr-libc 1.7.1-2. Jeszcze jeden filmik z "ekstrakcji" w HD :) (at)ADI-mistrzu: U mnie obsługa wyświetlacza i klawiatury była z założenia zadaniem o najniższym priorytecie, stąd nie obsługuję ich w przerwaniach. W...

    DIY Konstrukcje   03 Sty 2013 23:44 Odpowiedzi: 39    Wyświetleń: 27891
  • ATMEL - jak zacząć programowanie w asemblerze ?

    Nie, żebym chciał cię do czegoś przekonywać, ale: - obecnie assembler stosuje się tylko tam gdzie to ma sens - czyli na naprawdę małych prockach, np. ATTiny10, gdzie nawet jeśli by się dało coś w C zrobić to nie miałoby to sensu, lub wymagało takich manipulacji linkerem, że traciłoby to sens. Asembler stosuje się też tam, gdzie optymalizacja jest niezbędna,...

    Mikrokontrolery   02 Paź 2013 11:16 Odpowiedzi: 26    Wyświetleń: 4986
  • STK500v2 - moja wersja - choć być może zbyt hucznie to brzmi

    Wiem, wiem. Siedzę i próbuję skompilować nowy, ale jak krew w piach..... Próbowałem z tego wątku: U mnie wyskakują inne błędy - tak jakby kompilator nie miał praw zapisu pliku, jakieś błedne linki do katalogów itp itd, a cmd uruchamiam jako admin.... Dodano po 23 POSZŁO !!!! Nie mógł utworzyć: Fatal error: can't create obj/AVRISP-MKII.o: No such file...

    DIY Konstrukcje   12 Maj 2017 17:30 Odpowiedzi: 11    Wyświetleń: 8577
  • Zapętlenie przy odbiorze OK na STM32 - jak poprawić kod?

    wprost nieobsługuje się przerwania nie rozumiem. O co Ci chodzi Ale jak RX nie jest volatile to kompilator uzna że nie może się zmienić w tej pętli while i odczytać wartości tylko raz. Później będzie porównywać tylko wartości rejestrów, Zobacz sobie jak to działa : wywołać którąś assemblerową instrukcję synchronizacyjną po co instrukcja synchronizacyjna?...

    Mikrokontrolery ARM   18 Sty 2020 22:25 Odpowiedzi: 21    Wyświetleń: 1050
  • [STM32][C Keil RealView] ISIX-RTOS - czy ktoś go kompilował?

    Ok, compiling cppsupport.c... ..\..\..\Libraries\ISIX_RTOS\include\isi... warning: #260-D: explicit type is missing ("int" assumed) ..\..\..\Libraries\ISIX_RTOS\include\isi... error: #65: expected a ";" ..\..\..\Libraries\ISIX_RTOS\include\isi...

    Mikrokontrolery ARM   14 Sty 2014 11:31 Odpowiedzi: 13    Wyświetleń: 4416