Вопросы по теме 'avr-gcc'

crt0.o и crt1.o В чем разница?
Недавно я пытался отлаживать низкоуровневую работу и не смог найти crt0.S для компилятора ( avr-gcc ), но я нашел crt1.S (и то же самое с соответствующими файлами .o ). В чем разница между этими двумя файлами? crt1 это что-то совсем другое...
16285 просмотров
schedule 05.11.2023

Отключить ошибку объявления функции в avr g++
Я использую этот Makefile для компиляции моего Arduino. эскизы, которые имеют следующие флаги для CPP и C CPPFLAGS += -mmcu=$(MCU) -DF_CPU=$(F_CPU) -DARDUINO=$(ARDUINO_VERSION) \ -I. -I$(ARDUINO_CORE_PATH)...
8408 просмотров

Неопределенная ссылка при линковке статических библиотек
У меня есть пара библиотек, созданных с помощью avr-ar. Каждый содержит несколько объектов. Объектам в библиотеке1 нужны символы из объектов в библиотеке2. Проблема в том, что когда я пытаюсь скомпилировать все это, я получаю undefined reference...
3047 просмотров
schedule 28.08.2022

массивы + объединения + структуры, содержащие битовые поля C++
Я просто играл с битовыми полями и наткнулся на то, что не могу понять, как обойти. (Примечание о платформе: размер int = 2 байта, long = 4 байта, long long = 8 байтов - думаю, стоит упомянуть, поскольку я знаю, что он может варьироваться. Также...
4919 просмотров
schedule 25.10.2022

Как скомпилировать V-USB для ардуино?
Проще говоря, я скачал порт V-USB для Arduino и не могу скомпилировать пример, который пришел с ним. Я получаю следующее сообщение при попытке скомпилировать с помощью Arduino IDE 1.0.1 avr-gcc: error: unrecognized command line option...
1846 просмотров
schedule 29.05.2022

Как я могу добавить символы, указывающие на раздел?
У меня есть некоторые переменные в моем коде C, которые объявлены с помощью __attribute__((section(".data.mystuff"))) . Я хотел бы определить два символа, mystuff_start и mystuff_size , которые имеют положение и размер раздела. Похоже, что...
750 просмотров
schedule 13.11.2023

Функции с переменным числом аргументов в C
У меня есть функция, которая выглядит как void demo_function_v(const char * mask, va_list ap) { for (; *mask; mask++) { // get one or more args from ap, depending on *mask } } Это работает в системе AVR, которая имеет...
611 просмотров
schedule 14.04.2023

Проблемы с настройкой UART на AVR Atmega88-PA
Я хочу настроить UART на ATmega88-PA. Сначала я пытался установить прерывание в регистре UDRE, но это не сработало, поэтому для передачи я использую обычный опрос. Поскольку код не работал, я снова начал с 0 с базовой программы. #define F_CPU...
1179 просмотров
schedule 16.09.2022

Переместите сервопривод с помощью кнопок | С | Студия Атмел
Сейчас я работаю над проектом солнечного трекера с ATMEGA1284P, и после настройки ШИМ пришло время обнаружить механические ограничения трекера, чтобы я мог определить границы для сервоприводов. Для этого я подготовил простой код. Я знаю, что PWM...
334 просмотров
schedule 22.11.2022

Можно ли создать новый примитивный тип в С++ для встраиваемых платформ?
Я пишу свою собственную библиотеку C++ для чипа Atmel ATmega2560 с нуля в качестве упражнения, чтобы узнать, как он (и электроника в целом) работает. В рамках этого я хочу создать новый фундаментальный тип byte в C++, который не является просто...
1092 просмотров
schedule 26.04.2023

Как правильно делать ссылки только на символы
Я предполагаю, что это продолжение этого вопрос. Я скомпилировал свою промежуточную библиотеку загрузчика и проверил ее работу, теперь пришло время написать для нее код приложения. Я могу создать список символов из сгенерированного загрузчиком...
1944 просмотров
schedule 28.01.2023

целочисленное переполнение в константном выражении
Хотя это отлично компилируется в 64-битной версии Linux с gcc: #define CONST_1 255 #define CONST_2 255 #define CONST_PROD ((CONST_1) * (CONST_2)) он выдает предупреждение о переполнении на avr-gcc (8 бит): constants.c:13:31: warning:...
3372 просмотров
schedule 06.01.2023

Исполняемый файл AVR-GCC Flashing ничего не делает, работает только объектный файл.
У меня проблема, которую я не понимаю. Итак, у меня есть основной файл (main.c), который просто мигает парой светодиодов. Выполнение следующих действий включает светодиоды микроконтроллера: $ avr-gcc -mmcu=atmega128rfa1 -Wall -Wextra...
45 просмотров
schedule 12.01.2024

Директива OFFSET в gcc/avr_gcc
Я новичок в ассемблере, и чтобы немного попрактиковаться, я программирую Arduino, используя только ассемблер avr и avr_gcc. Я пытался использовать инструкции ST и LD, и в каждом примере, который я нашел, адрес загружается в регистр X, Y или Z...
108 просмотров
schedule 19.06.2022

ATtiny85 PWM более низкая частота, чем ожидалось
Я новичок в программировании микроконтроллеров и пытаюсь использовать ШИМ на ATtiny85. Я просмотрел в Интернете различные учебные пособия и мне удалось заставить его работать с приведенным ниже кодом. Моя проблема в том, что я ожидаю, что частота...
460 просмотров
schedule 28.09.2023

Неявное преобразование в число с плавающей запятой с использованием avr-gcc: uint8_t против uint16_t
У меня есть вопрос относительно неявного преобразования uint8_t и uint16_t с помощью Arduino IDE 1.8.2 (gcc 4.9.2.). Аппаратное обеспечение стандартное Arduino (ATMega328p). Я написал кусок кода, используя uint8_t , а потом решил...
852 просмотров

avr-gcc: (на первый взгляд) ненужный пролог/эпилог в простой функции
При попытке адресации отдельных байтов внутри uint64 AVR gcc⁽¹⁾ выдает мне странный пролог/эпилог, в то время как та же функция, написанная с использованием uint32_t , дает мне один ret (пример функции — это NOP). Почему gcc это делает? Как...
359 просмотров

Как сделать микросекундную задержку в AVR (ATmega8) с таймером?
Хочу сделать переменную задержку в ATmega8. Но в функции delay_us() я могу просто указать постоянное значение. Я думаю, что могу сделать микросекунду с переменной задержкой с помощью таймера, но я не знаю, как с этим работать. Помогите пожалуйста...
1041 просмотров
schedule 13.03.2024

avr-gcc: Итерация по массиву символов не работает при слишком большом количестве итераций.
У меня есть простая функция, которая перебирает массив символов и вызывает функцию с каждым символом. void loopFunction(void)...
52 просмотров
schedule 17.03.2023

Связывание дополнительного кода микроконтроллера (AVR) с уже существующим кодом
Постановка задачи: В микроконтроллере AVR необходимо иметь две части кода, фиксированную, которая всегда есть и не меняется (часто), и переходную, то есть (не очень) часто заменяемую или доп. Задача состоит в том, чтобы дать временному коду...
39 просмотров
schedule 01.10.2023