Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Дерганье ножками...
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Странник
Есть проект в котором используется AT91RM9200.
На нем стоит Uboot + Linux 2.6.
Есть потребность анализировать состояние опредиленного пина (софт кнопка). В зависимости от его состояния устанавливается или сбрасывается значение на другом пине. Вкусность заключается в том, чтоб эту маленькую функцию надо запускать до Uboot'a.
Возможна ли такая реализация?
Где можно почитать как с помощью ГСС создать код, и как выставить адреса чтоб правильно всё легло?
makc
Цитата(Странник @ Aug 7 2007, 12:49) *
Есть проект в котором используется AT91RM9200.
На нем стоит Uboot + Linux 2.6.
Есть потребность анализировать состояние опредиленного пина (софт кнопка). В зависимости от его состояния устанавливается или сбрасывается значение на другом пине. Вкусность заключается в том, чтоб эту маленькую функцию надо запускать до Uboot'a.
Возможна ли такая реализация?


Возможна. Т.к. U-Boot может загружать свой собственный загрузчик, который может выполнить требуемый опрос пинов и соответствующие действия.

Цитата
Где можно почитать как с помощью ГСС создать код, и как выставить адреса чтоб правильно всё легло?


gcc - это компилятор. Он создает объектные файлы, которые потом собираются компоновщиком (линкером). Вот про него-то Вам и нужно почитать. Называется он ld. Читать можно здесь - http://www.gnu.org/software/binutils/manua...ode/ld_toc.html
Странник
Цитата(makc @ Aug 7 2007, 13:02) *
Возможна. Т.к. U-Boot может загружать свой собственный загрузчик, который может выполнить требуемый опрос пинов и соответствующие http://www.gnu.org/software/binutils/manua...ode/ld_toc.html

А как это можно сделать?
slava2005
А может это проще сделать в ромбуте ? Т.е. в утилите, которая и загружает сам ю-бут ?

Тем, более, что его править надо по любому smile.gif
amw
Цитата(Странник @ Aug 7 2007, 13:33) *
А как это можно сделать?

Примерно так:
1. Забываем о Linux и libc.
2. Пишем свою программу как для микроконтролера. Если программа сложная (типа на C) то пишем свой crt0.S.
3. Пишем свой скрипт для линкера.
4. При написании программы не используем никаких библиотек.
5. Линкуем с помощью своего скрипта линкера, указываем опцию -nostdlib.
6 Если все-же нужны библиотеки, то используем не Линуксовые а типа newlib, собранные для arm-elf таргета.
7. Выводим бинарик (hex, srec, ...) из elf файла с помощью objcopy.
8. Прошиваем, тестим.
Странник
Цитата(slava2005 @ Aug 7 2007, 14:25) *
А может это проще сделать в ромбуте ? Т.е. в утилите, которая и загружает сам ю-бут ?

Тем, более, что его править надо по любому smile.gif

Отлично, куда смотреть, где и какой файлик править?

Цитата(amw @ Aug 7 2007, 15:38) *
Примерно так:
1. Забываем о Linux и libc.
2. Пишем свою программу как для микроконтролера. Если программа сложная (типа на C) то пишем свой crt0.S.
3. Пишем свой скрипт для линкера.
4. При написании программы не используем никаких библиотек.
5. Линкуем с помощью своего скрипта линкера, указываем опцию -nostdlib.
6 Если все-же нужны библиотеки, то используем не Линуксовые а типа newlib, собранные для arm-elf таргета.
7. Выводим бинарик (hex, srec, ...) из elf файла с помощью objcopy.
8. Прошиваем, тестим.

Хороший вариант, я про него сначала и думал. Только я не знаю как потом передать управление ЮБУТУ.(Да и на самом деле ни разу не писал под АРМ без линукса)
slava2005
Цитата(Странник @ Aug 7 2007, 17:09) *
Отлично, куда смотреть, где и какой файлик править?


Да тут на форуме уже столько выкладывали smile.gif Ключевое слово - romboot
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.