Вопросы с тегом «c»

C является императивным (процедурным) языком реализации систем. Он был разработан для компиляции с использованием относительно простого компилятора, чтобы обеспечить низкоуровневый доступ к памяти, чтобы обеспечить языковые конструкции, которые эффективно сопоставляются с машинными инструкциями, и требовать минимальной поддержки во время выполнения. Поэтому C был полезен для многих приложений, которые ранее были написаны на ассемблере. с http://en.wikipedia.org/wiki/C_(programming_language)

8
Почему printf () плохо для отладки встроенных систем?
Я думаю, это плохая вещь, чтобы попытаться отладить проект на основе микроконтроллера с помощью printf(). Я могу понять, что у вас нет предопределенного места для вывода, и что оно может потреблять ценные выводы. В то же время я видел, как люди используют вывод UART TX для вывода на терминал IDE …
16 c  debugging 

3
От C до сборки
Предположим, что у нас есть следующий фрагмент кода C для avr-8bit: int v1=1; int v2=2; v2=v2+v1; Я ожидал следующую разборку ldi r18, 1; ldi r19, 2; add r19, r18; но после того как я побежал: avr-gcc -mmcu=atmega2560 Test.c -o Test.elf и avr-objdump -S Test.elf > Test.lss Я получил следующую разборку …
16 avr  c  assembly 

1
Генерация синусоидального сигнала с использованием ШИМ
Мы не можем правильно генерировать синусоидальный сигнал с помощью микроконтроллера MC68HC908GP32 . Описание ШИМ начинается на стр. 349. Тактовая частота составляет 2,4 МГц, в то время как мы использовали ШИМ 7 кГц, используя прескалер и установив таймер по модулю 350 следующим образом: T1SC = 0x60; // Prescaler: Div entre 64 …
16 microcontroller  c  pwm 

2
STM32F2: Makefile, скрипт компоновщика и стартовый файл без коммерческой IDE
Я работал с STM32F2 (в частности, STM32F217IGH6 на плате разработки) около двух месяцев. Безусловно, моя самая большая проблема была связана с «установкой», которая включает make-файл, скрипт компоновщика и файл запуска. В частности, я не смог правильно настроить таблицу векторов прерываний и вызвал обработчики прерываний. ST предоставляет примеры, адаптированные для коммерческих …
16 c  stm32  gcc 

4
Как реализовать критические разделы на ARM Cortex A9
Я портирую некоторый устаревший код с ядра ARM926 на CortexA9. Этот код является непромокаемым и не включает ОС или стандартные библиотеки, все пользовательские. У меня сбой, который, по-видимому, связан с состоянием гонки, которое следует предотвратить путем критического разбиения кода. Я хочу получить отзывы о моем подходе, чтобы увидеть, могут ли …
15 c  embedded  interrupts 

3
Продвижение целого числа C на 8-битных MCU
Используя в качестве примера avr-gcc, типы int указываются шириной 16 бит. Выполнение операций над 8-битными операндами в C приводит к тому, что эти операнды преобразуются в 16-битные типы int из-за целочисленного продвижения в C. Означает ли это, что все 8-битные арифметические операции в AVR будут намного дольше, если они записаны …
14 microcontroller  avr  c 

9
Каков наилучший подход при написании функций для встроенного программного обеспечения для повышения производительности? [закрыто]
Закрыто . Этот вопрос основан на мнении . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 2 года назад . Я видел некоторые библиотеки для микроконтроллеров, и их функции выполняют одну вещь за …

6
Как избежать глобальных переменных при использовании прерываний во встроенных системах
Есть ли хороший способ реализации связи между ISR и остальной частью программы для встроенной системы, которая избегает глобальных переменных? Кажется, что общая схема состоит в том, чтобы иметь глобальную переменную, которая совместно используется ISR и остальной частью программы и используется в качестве флага, но это использование глобальных переменных идет вразрез …

3
Объявление переменной с @ в C
Я читаю код на C и наткнулся на это объявление в программе: unsigned char serv_ctr @0x0002; Может кто-нибудь указать мне на документацию или объяснить, для чего "@ 0x0002" в компиляторе C Mplab XC8 v1.35?
11 c  embedded  mplabx  xc8  variable 

4
Проблема Endian на STM32
Я использую arm gcc (CooCox) для программирования STM32F4 обнаружения, и я борюсь с проблемой endian Я использую 24-битный АЦП через SPI. Поскольку поступают три байта, MSB сначала у меня возникла идея загрузить их в объединение, чтобы сделать их (я надеюсь, в любом случае!) Немного проще в использовании. typedef union { …
11 c  stm32  cortex-m  gcc 

2
Запрограммируйте AVR EEPROM непосредственно из источника C
Когда вы включаете следующий код в источник AVR C, вы, очевидно, можете напрямую программировать предохранители, без необходимости в дополнительной команде или файле .hex: #include <avr/io.h> FUSES = { .low = LFUSE_DEFAULT , .high = HFUSE_DEFAULT , .extended = EFUSE_DEFAULT , }; Есть ли подобная хитрость для программных значений в EEPROM? …
11 avr  c  attiny  eeprom 

3
Микроконтроллер сна состояние гонки
Дан микроконтроллер, на котором выполняется следующий код: 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 { has_flag …

6
По какой причине мое многозадачное ядро ​​RTOS PIC16 не работает?
Я пытаюсь создать полу-упреждающую (кооперативную) ОСРВ для микроконтроллеров PIC x16. В моем предыдущем вопросе я узнал, что доступ к указателю аппаратного стека невозможен в этих ядрах. Я посмотрел на эту страницу в PIClist, и это то, что я пытаюсь реализовать с помощью C. Мой компилятор - Microchip XC8, и в …

1
C-компилятор PIC18F4550 с открытым исходным кодом и кросс-платформенный?
Я давний пользователь AVR. Мне действительно нравится, что AVR-GCC работает на двух основных операционных системах, которые я использую (Mac OS X и Linux), с открытым исходным кодом и поддерживается Atmel. Я хотел бы вернуться к программированию PIC (использовал их в 90-х годах), так как есть несколько довольно хороших PIC, таких …
11 pic  c  compiler 

1
Какова скорость нарастания для I2C?
Я настраиваю I 2 C на PIC18, используя встроенные функции компилятора C18, как описано в разделе 2.4 документации : void OpenI2C2( unsigned char sync_mode, unsigned char slew ); Я не уверен, что я должен делать с slew. Я могу выбрать один из двух вариантов, определенных в i2c.h: SLEW_OFF: Скорость нарастания …
10 pic  c  i2c  software  c18 

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.