Pytania otagowane jako c

C jest imperatywnym (proceduralnym) językiem implementacji systemów. Został zaprojektowany do kompilacji przy użyciu stosunkowo prostego kompilatora, aby zapewnić dostęp do pamięci na niskim poziomie, zapewnić konstrukcje językowe, które wydajnie odwzorowują instrukcje maszynowe i wymagać minimalnej obsługi w czasie wykonywania. C było zatem przydatne w wielu aplikacjach, które wcześniej były kodowane w języku asemblera. z http://en.wikipedia.org/wiki/C_(programming_language)

8
Dlaczego printf () jest zły do ​​debugowania systemów wbudowanych?
Myślę, że źle jest próbować debugować projekt oparty na mikrokontrolerze printf(). Rozumiem, że nie masz predefiniowanego miejsca na wyjście i że może zużywać cenne szpilki. Jednocześnie widziałem, jak ludzie używają pinu UART TX do wysyłania do terminala IDE za pomocą niestandardowego DEBUG_PRINT()makra.
16 c  debugging 

3
Od C do montażu
Załóżmy, że mamy następujący fragment kodu C dla avr-8bit: int v1=1; int v2=2; v2=v2+v1; Spodziewałem się następującego demontażu ldi r18, 1; ldi r19, 2; add r19, r18; ale po tym jak pobiegłem: avr-gcc -mmcu=atmega2560 Test.c -o Test.elf i avr-objdump -S Test.elf > Test.lss Mam następujący demontaż ldi r24, 0x01 ; …
16 avr  c  assembly 

1
Generowanie sygnału sinusoidalnego przy użyciu PWM
Nie jesteśmy w stanie poprawnie wygenerować sygnału sinusoidalnego za pomocą mikrokontrolera MC68HC908GP32 . Opis PWM zaczyna się na stronie 349. Częstotliwość taktowania wynosi 2,4 MHz, a my wykorzystaliśmy PWM 7 kHz, używając preskalera i ustawiając moduł modulo na 350 w następujący sposób: T1SC = 0x60; // Prescaler: Div entre 64 …
16 microcontroller  c  pwm 

2
STM32F2: Makefile, skrypt linkera i kombinacja plików startowych bez komercyjnego IDE
Pracuję z STM32F2 (konkretnie STM32F217IGH6 na płycie programistycznej) od około dwóch miesięcy. Zdecydowanie mój największy problem dotyczył „instalacji”, która obejmuje makefile, skrypt linkera i plik startowy. W szczególności nie byłem w stanie poprawnie skonfigurować mojej tabeli wektorów przerwań i wywołałem procedury obsługi przerwań. ST dostarcza przykłady dostosowane do komercyjnych IDE. …
16 c  stm32  gcc 

4
Jak zaimplementować krytyczne sekcje na ARM Cortex A9
Przenoszę trochę starszego kodu z rdzenia ARM926 na CortexA9. Ten kod jest niemetalowy i nie zawiera systemu operacyjnego ani standardowych bibliotek, wszystkie niestandardowe. Mam awarię, która wydaje się być związana ze stanem wyścigu, któremu należy zapobiegać przez krytyczne dzielenie kodu. Chcę uzyskać informacje zwrotne na temat mojego podejścia, aby sprawdzić, …
15 c  embedded  interrupts 

3
C Promocja na liczbę całkowitą na 8-bitowych MCU
Korzystając z avr-gcc jako przykładu, typy int mają szerokość 16 bitów. Wykonywanie operacji na 8-bitowych operandach w C powoduje, że operandy te są konwertowane na 16-bitowe typy int z powodu promocji liczb całkowitych w C. Czy to oznacza, że ​​wszystkie 8-bitowe operacje arytmetyczne na AVR potrwają znacznie dłużej, jeśli są …
14 microcontroller  avr  c 



3
Deklaracja zmiennej z @ w C
Czytam trochę kodu C i natknąłem się na tę deklarację w programie: unsigned char serv_ctr @0x0002; Czy ktoś może skierować mnie do dokumentacji lub wyjaśnić, po co jest „@ 0x0002” w kompilatorze Mplab XC8 v1.35 C?
11 c  embedded  mplabx  xc8  variable 

4
Problem Endian na STM32
Używam arm gcc (CooCox) do programowania odkrycia STM32F4 i walczyłem z problemem endian Próbuję z 24-bitowym ADC przez SPI. Ponieważ nadchodzą trzy bajty, MSB najpierw wpadłem na pomysł załadowania ich do unii, aby uczynić je (w każdym razie mam nadzieję!) Nieco łatwiejszymi w użyciu. typedef union { int32_t spilong; uint8_t …
11 c  stm32  cortex-m  gcc 

2
Programuj AVR EEPROM bezpośrednio ze źródła C.
Po dołączeniu następującego kodu do źródła AVR C najwyraźniej możesz bezpośrednio zaprogramować bezpieczniki, bez potrzeby stosowania dodatkowej komendy lub pliku .hex: #include <avr/io.h> FUSES = { .low = LFUSE_DEFAULT , .high = HFUSE_DEFAULT , .extended = EFUSE_DEFAULT , }; Czy istnieje podobna sztuczka do programowania wartości w EEPROM? Sprawdziłem, /usr/lib/avr/include/avr/fuse.hgdzie …
11 avr  c  attiny  eeprom 

3
Stan wyścigu w trybie uśpienia mikrokontrolera
Biorąc pod uwagę mikrokontroler, który uruchamia następujący kod: volatile bool has_flag = false; void interrupt(void) //called when an interrupt is received { clear_interrupt_flag(); //clear interrupt flag has_flag = true; //signal that we have an interrupt to process } int main() { while(1) { if(has_flag) //if we had an interrupt { …

6
Z jakiego powodu moje wielozadaniowe jądro RTIC PIC16 nie działa?
Próbuję stworzyć pół-wyprzedzający (współpracujący) RTOS dla mikrokontrolerów PIC x16. W poprzednim pytaniu dowiedziałem się, że dostęp do wskaźnika stosu sprzętu nie jest możliwy w tych rdzeniach. Przejrzałem tę stronę na liście PIClist i właśnie to próbuję wdrożyć za pomocą C. Mój kompilator to Microchip XC8 i obecnie pracuję na PIC16F616 …


1
Jaka jest prędkość zabicia dla I2C?
Konfiguruję I 2 C na PIC18 przy użyciu wbudowanych funkcji kompilatora C18, jak opisano w sekcji 2.4 dokumentacji : void OpenI2C2( unsigned char sync_mode, unsigned char slew ); Nie jestem pewien, co powinienem zrobić slew. Mogę wybrać jedną z dwóch opcji zdefiniowanych w i2c.h: SLEW_OFF: Szybkość wysyłania wyłączona dla trybu …
10 pic  c  i2c  software  c18 

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.