koky-motoky
1

общие вопросы при работе в Eclipse

18.08.2015, 06:11. Показов 3134. Ответов 6
Метки нет (Все метки)

здравствуйте, товарищи!
Общая картина: потому как комп у меня слабый и древний то Студию он ни с какой ОС не тянет, потому сижу с Эклипсом через Убунту. Некоторое время баловался с ардуиной, но потом надоело и решил погрузиться в азы языка ассемблера для авр.
Ну так вот, некоторое время читал теорию, вникал, и вот решил, час пробил, время помигать диодом:D
но ничего не вышло, потому как писал undefined reference to main. Короче пару часов колдовал с гуглом на 3 языках, пока по кусочкам не собрал код и о чудо! он скомпилился и загрузился(и даже заработал)!
Код
#define __SFR_OFFSIT 0
#include "avr/io.h"

.global main

.org 0x0000
rjmp main

main:
ldi r16, 0b00000001
out DDRB, r16
sbi PORTB, 0
и тут напрашиваются несколько вопросов, первый, что есть сфр оффсет, для чего он тут? без него не компилится, где-то читал, что как-то связано с заданием адреса, но так и не понял.
второй насчет подключаемого файла, почему такой? почему не avr/iom328p.h (работаю с 328p)?
третий - насчет функции мэин, всегда ли она должна быть, можно ли ее назвать по-другому? зачем задавать глобал мэин?

Вы конечно извините за столь глупые вопросы, но во всех руководствах эти моменты опущены или описаны для студии, а по эклипсу+ассемблер инфы крайне мало или я ее не там ищу

И раз уж задаю вопросы, вот еще парочку, которые меня мучают:
1) В датащите написано, что тактовая частота до 20МГц, надо ли ее как-то определять в начале кода(ибо когда настраиваю проект, то эклипс считывает данные контроллера сам и выставляет 10МГц)?
2)что вы еще посоветуете подключать в начале каждого документа, что бы не было лажи?
3) ну и приветствуются общие советы, кто что сочтет нужным)
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.08.2015, 06:11
Ответы с готовыми решениями:

Общие вопросы по работе с COM-портом
У меня Win7. На системе классический встроенный последовательный порт и Usb преобразователь...

Непонятное поведение при работе с UTF-16 в консоле Eclipse
Заходим run - run configurations - common ставим encoding UTF-16 теперь вроде как возможно...

Почему в eclipse игнорируются точки остановки при работе с GUI
Почему в eclipse игнорируются точки остановки при работе с GUI ? И что с эти делать?

Общие вопросы.
Доброго времени суток! После изучения Паскаля, решил перейти на изучение С/С++, прочитал много...

6
0 / 0 / 0
Регистрация: 01.04.2011
Сообщений: 177
18.08.2015, 18:59 2
У авр регистры могут быть отмаплены (отображены) на память (озу). Смещение кажись 0х20. Тоесть регистр с адресом 0х01 доступен как ячейка памяти с адресом 0х21. Дефайн _SFR_OFFSIT сообщает ассемблеру что к регистрам обращаются как к служебным регистрам (команды in out). А не как к памяти (ld st).

Отправлено с моего GT-I9300 через Tapatalk
0
0 / 0 / 0
Регистрация: 01.04.2011
Сообщений: 177
18.08.2015, 19:05 3
Тактовая частота в avr-gcc определяется дефайном F_CPU. Обычно в настройках проекта. Если используете make файл то смотрите в опциях строку -DF_CPU=... можно определить самому так
#ifndef F_CPU
#define F_CPU число в герцах.
#endif
Но смотрите настройки проекта. Т.к. если частота определена там то она будет приоритетной.

Отправлено с моего GT-I9300 через Tapatalk
0
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 3,044
18.08.2015, 19:14 4
Настолько древний, что и AVR-Studyo 4.19 не тянет? о_О
0
koky-motoky
18.08.2015, 22:40 5
спасибо друзья))
нетбук, 11.6 дюймов, амд, 2 ГБ оперативки, дальше думаю ясно)
koky-motoky
19.08.2015, 00:11 6
а функция сэин обязательно должна присутствовать? или в данном случае она заменяет какую-то функцию?
0 / 0 / 0
Регистрация: 01.04.2011
Сообщений: 177
19.08.2015, 07:29 7
main - не обязательно, но это надо указывать ассемблеру что майна нет. Иначе ругнётся. main это начало основной программы в си. А в avr-gcc асм заточен по умолчанию как дополнение к си. Точнее сначало генерится асм код из си, затем ассемблер траслирует его в бинарник. Заголочник io.h подключают если в опциях компилятора объявлен тип контроллера, опция -mcu кажись. Можно подключать ручками iom328p.h. В io.h собственно он и подключается. Там тупая конструкция если контроллер такой подключить такой заголовочник. Сделано это из-за того что некоторые библиотеки требуют явного указания контроллера.

Отправлено с моего GT-I9300 через Tapatalk
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.08.2015, 07:29
Помогаю со студенческими работами здесь

Общие вопросы по Qt
Предлагаю в этой теме оставлять различные общие вопросы касающиеся Qt. Оставил свой вопрос в...

Общие вопросы
Что бы не создавать кучю тем, предлагаю сюда: задавать простые вопросы, просить проверить код и...

C++ общие вопросы
Информация на эту тему так расхлёстана, что сводит с ума новичка в первые недели)))) Вобщем есть...

Общие вопросы 1С
Сегодня приходил дядя из 1С. Говорит зарплаты под 200 тысяч, нехватка сотрудников. Это правда? Что...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru