|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
04.11.2015, 13:43 | #1 |
Пользователь
Регистрация: 04.11.2015
Сообщений: 14
|
Разбираюсь с x86 (FreeRTOS + PCM-9387).
Доброго времени суток!
Игаюсь я собственно с одноплатным компьютером PCM-9387 (Celeron M 1Ghz). Натянул на него FreeRTOS по средствам Grub'а. Пользую Eclipse + Cross compiller (точно не знаю какой, по ссылкам со страницы FreeRTOS'a нашел его). С ассемблером можно сказать начал знакомится только на этом "проекте") Дрова под данную ОС не нашел) Было бы странно если бы нашел) В общем по ходу дела начинают возникать вопросы на которые не могу пока что найти ответов и прошу вас немного помочь, по пинать в нужном направлении. Весь код, который пишу, создаю как задачи во FreeRTOS. Первые несколько вопросов: -1- Считываю регистр данных клавиатуры (порт 0x60) пока без прерываний так как пока не разбирался что за магия творится в файлах startup.S и portASM.S. Нажатия клавишь нормально считываются, но при нажатии на некоторые клавиши динамик пищит непрерывно пока не нажать на другую клавишу (ничего не виснет). В чем может быть дело? код считывания: Код:
Манул на плату (3 мб) |
04.11.2015, 14:03 | #2 |
Пользователь
Регистрация: 04.11.2015
Сообщений: 14
|
Первый вопрос решен)
Исключил запись в регистр 0x61 (я же не в прерывании работаю). Хотя непонятно почему пищало. Подкиньте пожалуйста ссылку на описание регистров контроллера клавиатуры, с адресами желательно. Последний раз редактировалось Foton6; 04.11.2015 в 14:14. |
04.11.2015, 14:54 | #3 |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Открываем вашу доку находим строчку
System Chipset: Intel 852GM GMCH/ICH4 chipset Дальше гуглим. http://www.intel.com/content/www/us/...datasheet.html http://www.intel.com/content/dam/www...-datasheet.pdf Далее читаем вторую книгу смотрим Ищем 61h находим на стр 342 что этот порт не имеет к клавиатуре ни какое отношение. А отвечает за пищалку и NMI. Вам повезло материнку вы не спалили, а только вызвали NMI прерывание которое выдало ошибку, а система просто выдала Beep. На будущее проверяйте код который берёте, 61h порт относился к клавиатуре только в компьютерах IBM XT это было в 70 годах. Продолжаем раскопки. Находим даташит http://pdf1.alldatasheet.com/datashe.../PCM-9387.html Находим там LPC SuperIO опознаем его как W83627HF Везёт на Super I/O только в 50% можно найти даташит: http://datasheetspdf.com/PDF/W83627HF/370437/1 Далее 7 глава там описана клавиатура. А так обычно приходится пользоваться документаций на IBM PS/2 так как все компьютеры являются совместимыми с ними.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
04.11.2015, 15:18 | #4 | ||
Пользователь
Регистрация: 04.11.2015
Сообщений: 14
|
Цитата:
Чет я даже не подумал на чипсет погуглить) Ухх) Столько инфы узнал за последние недели 2^^ Так и придется написать свою недоОС для опровдания полученных знаний)))))) А поповоду 0x61, если верить доке на плату то: Цитата:
|
||
04.11.2015, 15:57 | #5 |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . Последний раз редактировалось Pavia; 04.11.2015 в 16:01. |
05.11.2015, 15:14 | #6 |
Пользователь
Регистрация: 04.11.2015
Сообщений: 14
|
Опять нужна помощь))))
Никак не могу заставить работать GPIO порты. Использовал пример из дока на плату, не катит. Почитал ДШ на микруху W83627HF. Вроде бы пример оформлен правильно, но блин оно ведь никак не работает. Вот код: Код:
Описание на плату (разьемов/джамперов) соответствует той плате что на столе^^ З.Ы. Как тут споллер юзать, а о длинные коды втыкать как то неудобно? Последний раз редактировалось Foton6; 05.11.2015 в 15:22. |
05.11.2015, 16:43 | #7 | |||
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Цитата:
out 0ebh, al. Или любой другой порт ISA не привязанный к устройствам. Цитата:
Код:
Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
|||
05.11.2015, 16:53 | #8 |
Пользователь
Регистрация: 04.11.2015
Сообщений: 14
|
Ну на счет писать короткий код понятно, просто у меня пока тут полный ТЕСТ-ХАОС )))) Тыкаю -удаляю снова тыкаю, короче дичь))))
Постараюсь завтра упорядочить все) Да я пробовал паузы делать(при помощи функций FreeRTOS'а). Эфект тот же, приведенный код нормально записывает и читает регисты. А по поводу того включено ли необходимое мне устройство сказано в доках на плату что оно вкл. и уже настроено что 2 пина на выход 2 на вход, что подтверждает мультиметр) Регист CR30 7 устаройства тоже подтверждает что включена именно GPIO опция. Обязательно проверю то что Вы сказали, а то уже начинаю верить в магию) |
06.11.2015, 09:30 | #9 |
Пользователь
Регистрация: 04.11.2015
Сообщений: 14
|
Заработалиииииииии) Вы оказались правы в регистре 2А был включен режим Game Port (общее значение регитсра 7С было),
все решилось 1 << 7 )))))) Блин это жесть насколько я не внимательный( |
06.11.2015, 13:55 | #10 |
Пользователь
Регистрация: 04.11.2015
Сообщений: 14
|
ППЦ распиновка GPIO не соответствует документации Оо
приведенная распиновка на разъем (GP1, GP5, GP0, GP4, VCC). действительная (GP3, GP2, GP1, GP0, VCC). |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Разбираюсь в коде С# | Alexey Smirnov | C# (си шарп) | 4 | 18.11.2013 19:18 |
Разбираюсь с Code::Blocks | Демик | Помощь студентам | 5 | 15.04.2013 20:22 |
Не разбираюсь динамическом программировании. | sirex | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 22.09.2010 21:58 |
Не разбираюсь в функциях | logok | Общие вопросы C/C++ | 5 | 03.04.2010 00:30 |