реклама на сайте
подробности

 
 
> Дерганье ножками..., Эх, блин новичек...
Странник
сообщение Aug 7 2007, 08:49
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 10-05-06
Из: Киев
Пользователь №: 16 944



Есть проект в котором используется AT91RM9200.
На нем стоит Uboot + Linux 2.6.
Есть потребность анализировать состояние опредиленного пина (софт кнопка). В зависимости от его состояния устанавливается или сбрасывается значение на другом пине. Вкусность заключается в том, чтоб эту маленькую функцию надо запускать до Uboot'a.
Возможна ли такая реализация?
Где можно почитать как с помощью ГСС создать код, и как выставить адреса чтоб правильно всё легло?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 6)
makc
сообщение Aug 7 2007, 10:02
Сообщение #2


Гуру
******

Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904



Цитата(Странник @ 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


--------------------
BR, Makc
В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
Go to the top of the page
 
+Quote Post
Странник
сообщение Aug 7 2007, 10:33
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 10-05-06
Из: Киев
Пользователь №: 16 944



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

А как это можно сделать?
Go to the top of the page
 
+Quote Post
slava2005
сообщение Aug 7 2007, 11:25
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 168
Регистрация: 26-05-05
Из: Москва
Пользователь №: 5 423



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

Тем, более, что его править надо по любому smile.gif
Go to the top of the page
 
+Quote Post
amw
сообщение Aug 7 2007, 12:38
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847



Цитата(Странник @ 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. Прошиваем, тестим.


--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть.
© Lewis Carroll. Alice's adventures in wonderland.
Go to the top of the page
 
+Quote Post
Странник
сообщение Aug 7 2007, 13:09
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 10-05-06
Из: Киев
Пользователь №: 16 944



Цитата(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. Прошиваем, тестим.

Хороший вариант, я про него сначала и думал. Только я не знаю как потом передать управление ЮБУТУ.(Да и на самом деле ни разу не писал под АРМ без линукса)
Go to the top of the page
 
+Quote Post
slava2005
сообщение Aug 7 2007, 13:28
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 168
Регистрация: 26-05-05
Из: Москва
Пользователь №: 5 423



Цитата(Странник @ Aug 7 2007, 17:09) *
Отлично, куда смотреть, где и какой файлик править?


Да тут на форуме уже столько выкладывали smile.gif Ключевое слово - romboot
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 13:29
Рейтинг@Mail.ru


Страница сгенерированна за 0.01388 секунд с 7
ELECTRONIX ©2004-2016