Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить

использование х86

Вс окт 28, 2012 16:48:38

Попался мне в руки микроконтроллер am186er. По идее тот же i8086 с интегрированной периферией и небольшим количеством ОЗУ. Как и остальным х86 ему нужна прошивка во внешней ПЗУ. Искал средства разраотки под него - их миллионы! Всякого рода компиляторов и сред программирования. Правда есть одна крошечная проблема - все они предполагают наличие BIOS, DOS и стандартного железа PC. В Proteus есть пример использования 8086 в качестве калькулятора, без PC-подобной обвязки. Вот и у меня возникло желание попробовать сделать что-нибудь на базе этого проца. Отсюда вопрос, кто-нибудь что делал что-нибудь на х86? С чего начать? Даташит есть, TASM/MASM/NASM и прочее есть.

Re: использование х86

Пн окт 29, 2012 12:20:37

Пока что получил цирроз мозга в попытке понять как работать с портами. С АВР и ПИКами все проще, там порт - группа ног выведеных наружу, как оно сделано в х86? Где прочитать? Кого спросить?

Re: использование х86

Пн окт 29, 2012 21:09:59

shame писал(а):Пока что получил цирроз мозга в попытке понять как работать с портами. С АВР и ПИКами все проще, там порт - группа ног выведеных наружу, как оно сделано в х86? Где прочитать? Кого спросить?

Для обычных проциков, что х86, что 8080,8085,Z80,MC6800 и т.д. сделаны отдельные контроллеры портов ввода/вывода: К580ВВ55, MC6821, Z80PIO.
Читай описалово работы проца и кури даташиты контроллеров портов.
Если не вкуришь, ищи схему и описание старого доброго РК-86. Это "ясли" для тех, кто хочет что то замутить на настоящем процессоре.

Re: использование х86

Вт окт 30, 2012 08:31:01

Rokl писал(а):Для обычных проциков, что х86, что 8080,8085,Z80,MC6800 и т.д. сделаны отдельные контроллеры портов ввода/вывода: К580ВВ55, MC6821, Z80PIO.

Логику работы портами вкурил. Каким образом производится обращение к конкретному периферийному девайсу вроде понял.
РК-86 конечно хорошо, но проц другой, схемы есть, описания прошивки нет. А мне хочется не просто собрать нечто ПиСиобразное, а заюзать его именно как контроллер занимающийся дрыгоножеством, не имитируя стандартные прерывания и ОС. К примеру сделать на нем дупликатор EEPROM.

Re: использование х86

Вт окт 30, 2012 21:25:39

shame писал(а):...а заюзать его именно как контроллер занимающийся дрыгоножеством, не имитируя стандартные прерывания и ОС. К примеру сделать на нем дупликатор EEPROM.

А тогда для начала попробуй на ассемблере написать начальную загрузку своего контроллера...т.е. как в биосе писюка старшие 256 байт с межсегментными безусловными переходами, настройками внутренних регистров процессора, потом назначь вершину стека и настрой регистры управления внешних портов ввода вывода. Главное написать этот кусок кода со старшими адресами процессора. Т.е. твоя программа должна физически находиться и работать в ПЗУ в старших адресах проца, где ПЗУ биоса у писюков находится, ну а вершину стека должен назначить в ОЗУ соответственно. Как только это сделаешь, дальше взял байт из одного порта записал в РОН или положил в стек, потом вывел этот байт в другой порт, порт ножки выставит соответственно. А дальше в цикле один порт читаешь, кладешь в стек потом выводишь в другой и т.д.

Re: использование х86

Ср окт 31, 2012 09:01:36

Добрый день, коллега !
А Вы уверены, что он поймёт в каких конкретно "старших адресах" должна быть ПЗУ ?
Надо сначала спросить самого T.S. , понял ли он, как надо подключить ПЗУ, чтоб оно было в самом "верху" первого мегабайта, и почему именно стартовый адрес равен 0FFFF0h в архитектуре x86-ых.
Кстати если он захочет съэкономить "нижний" килобайт ОЗУ и - что важно - не писать самому на ассемблере обработку прерываний, то ему придётся наглухо запретить прерывания и вообще их не использовать.
Об этом он тоже уже знает ? :dont_know:
Кстати у меня тоже есть похожий процессор, даже несколько интереснее - NEC_V25 .
Касательно его у меня вопрос возник, после переключения в 80-ый набор команд какой участок адресного пространства будет доступным и как избежать конфликта вектора прерываний 86-го с RST0 ~ RST7 ? Подскажете ?

Re: использование х86

Пт ноя 02, 2012 06:36:11

Добрейшего дня. Прошу прощения за долгое молчание, все занят был ассемблером. Нашел проект N8VEM SBC-186, взял его биос и подстраивал под Am188. Не заработало...
А Вы уверены, что он поймёт в каких конкретно "старших адресах" должна быть ПЗУ ?
Надо сначала спросить самого T.S. , понял ли он, как надо подключить ПЗУ, чтоб оно было в самом "верху" первого мегабайта, и почему именно стартовый адрес равен 0FFFF0h в архитектуре x86-ых.

Почему запуск начинается с 0FFFFh:0000h = 0FFFF0 даже у Фигурнова было написано, я пользовался М.Гук "Аппаратные средства IBM PC", там разжевано подробней...

Кстати если он захочет съэкономить "нижний" килобайт ОЗУ и - что важно - не писать самому на ассемблере обработку прерываний, то ему придётся наглухо запретить прерывания и вообще их не использовать.

У меня в контроллере 32 кило ОЗУ, да кеши со старых материнок в виде SRAM надергать можно пачками, экономия памяти не стоит на повестке дня.

Кстати у меня тоже есть похожий процессор, даже несколько интереснее - NEC_V25 .

Насколько я помню это хитрый аналог 8086/8088 с возможностью переключения в набор команд 8080, даже корпусировка с 8086 совпадает, так что возможна просто подмена проца в материнке и все будет работать.

А тогда для начала попробуй на ассемблере написать начальную загрузку своего контроллера...т.е. как в биосе писюка старшие 256 байт с межсегментными безусловными переходами, настройками внутренних регистров процессора, потом назначь вершину стека и настрой регистры управления внешних портов ввода вывода. Главное написать этот кусок кода со старшими адресами процессора. Т.е. твоя программа должна физически находиться и работать в ПЗУ в старших адресах проца, где ПЗУ биоса у писюков находится, ну а вершину стека должен назначить в ОЗУ соответственно.

Спасибо за совет. После неудачи с запуском БИОС от SBC-186 решил попробовать почти то же самое, вот код:
Код:
start:
mov dx,80h ;Регистр управления встроенным UART
mov al,15h
out dx,al ; 8N1 прием/передача разрешены

mov dx,88h ; Регистр делителя частоты UART
mov al, 40h ; 40*1000000 МГц / 19200 baud / 32
out dx,al ; 19200 baud

.1:
mov dx, 82h ; Serial port status
in   al,dx
test   al,20h      ; THRE is empty - все передано, буфер пуст
jz   .1
mov al,38h ; Цифра 8 в ASCII
mov   dx,84h ; Регистр передачи
out   dx,al      ; write character
jmp .1

Все это расположено в самом верху ПЗУ.
am188ROM.GIF
(39.48 KiB) Скачиваний: 504

По идее это должно в вечном цикле передавать цифру 8 в терминал... однако ж молчание. Весь в раздумьях - что может быть не так, в коде ОЗУ вообще не используется...

Re: использование х86

Пт ноя 02, 2012 11:36:03

посмотрите здесь http://www.kmitl.ac.th/~kswichit/C188/c188sbc.htm

Re: использование х86

Пт ноя 02, 2012 11:47:24

ChipKiller писал(а):посмотрите здесь http://www.kmitl.ac.th/~kswichit/C188/c188sbc.htm

Спасибо за ссылку. Видел ее как-то, но там процессор слегка другой 80C188EB у которого по другому организовано даже UART - там свой генератор частоты от частоты проца не зависящий. Разноговка тоже другая. То есть они совместимы по коду ядра, но не инициализации периферии.

Re: использование х86

Пт ноя 02, 2012 17:10:55

Может не в кассу, но:

1) совет - используйте что-то типа POST 80 или просто регистр с адресом 80 и вывод на светодиоды.. Сразу будет видно работает или нет.. (вроде есть у вас вывод в 80 порт, но про результат вы ничего не упомянули)
2) Мне казалось что серийник надо инициализировать болеет подробно (и таймеры) , хотя в данном вопросе могу ошибатся
3) а не попробовать ли в начале отключить прерывания ??
4) не знаю почему, но я бы советовал ljmp ...

И, о том, как и с помошью чего делают биос советую посмотреть : coreboot.org

Re: использование х86

Пт ноя 02, 2012 23:34:32

mov dx,88h ; Регистр делителя частоты UART

Ну да. делитель частоты должен делить, но откуда взять ту самую частоту, чтоб делить то ?
Похоже, что не все настройки таймера и UART выполнены. Проверьте ещё раз, во все ли управляющие регистры этих устройств Вы занесли нужные байтики.

Re: использование х86

Вт ноя 06, 2012 07:16:22

Pe3ucTop писал(а):Может не в кассу, но:

1) совет - используйте что-то типа POST 80 или просто регистр с адресом 80 и вывод на светодиоды.. Сразу будет видно работает или нет.. (вроде есть у вас вывод в 80 порт, но про результат вы ничего не упомянули)
2) Мне казалось что серийник надо инициализировать болеет подробно (и таймеры) , хотя в данном вопросе могу ошибатся
3) а не попробовать ли в начале отключить прерывания ??
4) не знаю почему, но я бы советовал ljmp ...

И, о том, как и с помошью чего делают биос советую посмотреть : coreboot.org


1. Пост это хорошо. Но кто ему даст данные? БИОС? А биоса нет. Сам по себе пост не догадается о процессах внутре.
2. Что именно я упустил? Кто подскажет?
3. При пуске компа его регистры обнулены кроме CS=FFFFh, прерывания запрещены. Надо ли запретить еще раз?
4. В чем разница? JMP пробовал, sJMP тоже..

petrenko писал(а):Ну да. делитель частоты должен делить, но откуда взять ту самую частоту, чтоб делить то ?Похоже, что не все настройки таймера и UART выполнены. Проверьте ещё раз, во все ли управляющие регистры этих устройств Вы занесли нужные байтики.


Как где? Частота кварца = 10 МГц, cksel1 и cksel2 висят в воздухе, внутренняя их подтяжка к Vcc дает на них единицы, что есть умножение частоты на 4, то есть эффективная частота проца = 40 МГц, Делитель расчитан на эту частоту... смеха ради пробовал и без умножения = 10Мгц... Если верить даташиту, частота УАРт определяется от частоты самого проца, а не от таймеров...
bitrate.TIF
(27.42 KiB) Скачиваний: 447

Re: использование х86

Вт ноя 06, 2012 08:28:05

Pe3ucTop писал(а):4) не знаю почему, но я бы советовал ljmp ...


ljmp в х86 не нашел... а coreboot ориентированы всеж на 32 бита...

Re: использование х86

Вт ноя 06, 2012 15:54:00

Насчёт команд перехода - в x86 существуют следующие :
JMP SHORT label 11101011 diff L
JMP NEAR label 11101001 diff L diff H
JMP NEAR r16/m16 11111111 md 100 r/m
JMP FAR label 11101010 IP-L IP-H CS-L CS-H
JMP FAR m32 11111111 md 101 r/m

В каком "дэйтащиите" Вы пытались искать ljmp и где выискали sjmp из набора команд совершенно другого процессора и кто Вам эту чепуху наподсказывал ? (вопрос риторический ) :shock:
"дэйтащиит" надо "курить" осторожно - чтоб не обкуриться :wink:

Далее, при внимательном прочтении (или "курении"- это кому как нравится ) "дэйтащиит"-а можно разглядеть следующее уточнение :
ES to CU Software
Consideration
n Some Peripheral Control Block registers are different
! Refer to <<Am186EM/ER/ES/ED/CU Peripheral Control Block
Register Map Comparison>>
n Peripheral Control Block (PCB) of CU is bigger than ES
! 1 Kbyte vs. 256 byte
! Offset of PCB registers are different

Это различие надо учитывать в программировании, я так понимаю..
И ещё есть там уточнения :
n UART
! DCE/DTE hardware flow control protocol no longer
available (affected when using external modem)
! UART of CU can also be driven from the UART clock input
(UCLK), as well as derived from CPU clock
n UZI# pin not available on CU
n CLKOUTB pin not available on CU
- тоже принять во внимание надо..

И если Вы уверены таки, что верно занесли все нужные значения в регистры устройств, то может есть у Вас возможность посмотреть осциллографом частоту на выходе таймера и формы сигналов на выходе uart - возможно это развеет сомнения.. :dont_know:
Удачи в Ваших развлечениях с Am186er !

Re: использование х86

Ср ноя 07, 2012 05:21:03

petrenko писал(а):Насчёт команд перехода - в x86 существуют следующие :
JMP SHORT label 11101011 diff L
JMP NEAR label 11101001 diff L diff H
JMP NEAR r16/m16 11111111 md 100 r/m
JMP FAR label 11101010 IP-L IP-H CS-L CS-H
JMP FAR m32 11111111 md 101 r/m

В каком "дэйтащиите" Вы пытались искать ljmp и где выискали sjmp из набора команд совершенно другого процессора и кто Вам эту чепуху наподсказывал ? (вопрос риторический ) :shock:
"дэйтащиит" надо "курить" осторожно - чтоб не обкуриться :wink:

Прошу прощения, мнемоника sjmp действительно используется в 8051, а не в x86. Недоглядел. Команды брал отсюда: http://ece425web.groups.et.byu.net/stable/labs/Am186InstructionSet.pdf страница 139. JMP SHORT как раз с нужным опкодом. ljmp я здесь, кстати тоже не вижу.

petrenko писал(а):Далее, при внимательном прочтении (или "курении"- это кому как нравится ) "дэйтащиит"-а можно разглядеть следующее уточнение :
ES to CU Software
...<overquotting skipped>

Это различие надо учитывать в программировании, я так понимаю..
И ещё есть там уточнения :
...<overquotting skipped>
- тоже принять во внимание надо..

Категорически согласен! Однако ж причем здесь ES или CU? Как Вы верно заметили ниже у меня ER. Если б я портировал готовый код с ES или CU Ваше замечание было бы как нельзя кстати, к сожалению готового не нашел. Поэтому в процессе инициализации UART руководствовался даташитом именно на ER, инициализацию UART вчистую слизал из примеров оттуда же.
СпойлерКстати, дабы не упражнятся лишнего в изящной словесности: http://www.microchip.ru/phorum/read.php?f=2&i=2809&t=2809. При вводе дэйташиита, гугль предлагает даташиты, по мне хоть даттенблатты, лишь бы понятно было.



petrenko писал(а):И если Вы уверены таки, что верно занесли все нужные значения в регистры устройств, то может есть у Вас возможность посмотреть осциллографом частоту на выходе таймера и формы сигналов на выходе uart - возможно это развеет сомнения.. :dont_know:
Удачи в Ваших развлечениях с Am186er !

Благодарю за замечания по существу, был бы осциллограф - в первую очередь посмотрел бы, что там происходит. Как минимум проц имеет клокаут с которого выходит уменьшенная вдвое частота ядра. Уже этим можно было бы выяснить скорость работы.

Re: использование х86

Ср ноя 07, 2012 12:33:53

shame писал(а):
Pe3ucTop писал(а):4) не знаю почему, но я бы советовал ljmp ...


ljmp в х86 не нашел... а coreboot ориентированы всеж на 32 бита...

- Извиняюсь за дезинформацию, имел в виду "JMP FAR" , (long jump - словами) и никак не конкретную комманду..
- coreboot - начальная инициализация 16 бит и без всяких защишенных режимов и т.д. , как в старые добрые времена.
- POST 80 - опять таки не имел в виду в прямом понимании, а как подход, подключится к I/O адресному пространству и выводить в коде в это пространство, и смотреть работает lи вывод. Но для этого нужен декодер адреса и I/O (наверно излишне).
- Глянул немного мануал :
-- при старте WatchDog - включен и его надо или отключить или дергать:
"The WDT supports up to a 1.34-second timeout period in a 50-MHz system. After reset,
the WDT is enabled and the timeout period is set to its maximum value."
...
"The watchdog timer is enabled out of reset and configured to system reset mode with a
maximum timeout count."
-- может для начала просто GPIO подергать, а не UART.
-- и ещё проверте NMI не отключаемое прерывание.
-- и попробуйте запустить проц с внешнего источника частоты (oscillator) и без внутреннего PLL (в режиме /2).
(чем меньше частота - тем дольше сторожевая собака не сработает и можно увидеть что-то на серийнике)

Пока всё, хотя вопросов куча: схема, подключение, начальный режим, и т.д. и т.п.

Re: использование х86

Ср ноя 07, 2012 14:14:14

- Извиняюсь за дезинформацию, имел в виду "JMP FAR" , (long jump - словами) и никак не конкретную комманду..

Тогда понятно. Именно такой джамп и был, как у всех приличных БИОСов, не работал, я его поправил на short jump ручками в hiew... безуспешно

- coreboot - начальная инициализация 16 бит и без всяких защишенных режимов и т.д. , как в старые добрые времена.

Упустил из виду, буду посмотреть, действительно, любой x86 обязан стартовать в реальном режиме...

- POST 80 - опять таки не имел в виду в прямом понимании, а как подход, подключится к I/O адресному пространству и выводить в коде в это пространство, и смотреть работает lи вывод. Но для этого нужен декодер адреса и I/O (наверно излишне).

Видел где то схемку простейшей ISA POST... буду наверное собирать.

- Глянул немного мануал :
-- при старте WatchDog - включен и его надо или отключить или дергать:

стр.54 The WDT is inactive after reset. Проверено в железе. Действительно, WDT не работает если его не включить.

-- может для начала просто GPIO подергать, а не UART.
-- и ещё проверте NMI не отключаемое прерывание.
-- и попробуйте запустить проц с внешнего источника частоты (oscillator) и без внутреннего PLL (в режиме /2).

UART думал попроще будет... но проверю. Проц внутренного тактирования не имеет, работает с кварца 10МГц с множителем 4. Попробую включить WDT и /2. Хоть частоту посмотрю. Проц взят не просто в виде детальки, а в составе старенького модема TAICOM-128, генератор на плате внешний - кварц + логика. Логику убрали, кварц повесили на ноги процу с конденсаторами как положено... Flash подключена по даташиту (по крайней мере с оригинальной прошивкой модема на экране пишет).
Весь обвяз убрали, остался проц, флеш, кварц и max232 на UARTе.

Пока всё, хотя вопросов куча: схема, подключение, начальный режим, и т.д. и т.п.
Что есть в данном случае "начальный режим"?

Re: использование х86

Ср ноя 07, 2012 14:38:23

reset16.inc из coreboot
Код:
   .section ".reset"
   .code16
.globl   reset_vector
reset_vector:
   .byte  0xe9
   .int   _start - ( . + 2 )
   /* Note: The above jump is hand coded to work around bugs in binutils.
    * 5 byte are used for a 3 byte instruction.  This works because x86
    * is little endian and allows us to use supported 32bit relocations
    * instead of the weird 16 bit relocations that binutils does not
    * handle consistenly between versions because they are used so rarely.
    */
   . = 0x8;
   .code32
   jmp   protected_start
   .previous


вот код entry16.inc
Код:
/*
 * This software and ancillary information (herein called SOFTWARE)
 * called LinuxBIOS is made available under the terms described here.
 *
 * The SOFTWARE has been approved for release with associated
 * LA-CC Number 00-34. Unless otherwise indicated, this SOFTWARE has
 * been authored by an employee or employees of the University of
 * California, operator of the Los Alamos National Laboratory under
 * Contract No. W-7405-ENG-36 with the U.S. Department of Energy.
 *
 * The U.S. Government has rights to use, reproduce, and distribute this
 * SOFTWARE. The public may copy, distribute, prepare derivative works
 * and publicly display this SOFTWARE without charge, provided that this
 * Notice and any statement of authorship are reproduced on all copies.
 *
 * Neither the Government nor the University makes any warranty, express
 * or implied, or assumes any liability or responsibility for the use of
 * this SOFTWARE.  If SOFTWARE is modified to produce derivative works,
 * such modified SOFTWARE should be clearly marked, so as not to confuse
 * it with the version available from LANL.
 *
 * Copyright (C) 2000, Ron Minnich rminnich@lanl.gov
 *                     Advanced Computing Lab, LANL
 */


/* Start code to put an i386 or later processor into 32-bit protected mode.
 */

#include <arch/rom_segs.h>
.code16
.globl _start
.type _start, @function

_start:
   cli
   /* Save the BIST result */
   movl   %eax, %ebp

   post_code(POST_RESET_VECTOR_CORRECT)

   /* IMMEDIATELY invalidate the translation lookaside buffer (TLB) before
    * executing any further code. Even though paging is disabled we
    * could still get false address translations due to the TLB if we
    * didn't invalidate it. Thanks to kmliu@sis.com.tw for this TLB fix.
    */

   xorl   %eax, %eax
   movl   %eax, %cr3    /* Invalidate TLB*/

   /* Invalidating the cache here seems to be a bad idea on
    * modern processors.  Don't.
    * If we are hyperthreaded or we have multiple cores it is bad,
    * for SMP startup.  On Opterons it causes a 5 second delay.
    * Invalidating the cache was pure paranoia in any event.
    * If you cpu needs it you can write a cpu dependent version of
    * entry16.inc.
    */

   /* Note: gas handles memory addresses in 16 bit code very poorly.
    * In particular it doesn't appear to have a directive allowing you
    * associate a section or even an absolute offset with a segment register.
    *
    * This means that anything except cs:ip relative offsets are
    * a real pain in 16 bit mode.  And explains why it is almost
    * impossible to get gas to do lgdt correctly.
    *
    * One way to work around this is to have the linker do the
    * math instead of the assembler.  This solves the very
    * pratical problem of being able to write code that can
    * be relocated.
    *
    * An lgdt call before we have memory enabled cannot be
    * position independent, as we cannot execute a call
    * instruction to get our current instruction pointer.
    * So while this code is relocateable it isn't arbitrarily
    * relocatable.
    *
    * The criteria for relocation have been relaxed to their
    * utmost, so that we can use the same code for both
    * our initial entry point and startup of the second cpu.
    * The code assumes when executing at _start that:
    * (((cs & 0xfff) == 0) and (ip == _start & 0xffff))
    * or
    * ((cs == anything) and (ip == 0)).
    *
    * The restrictions in reset16.inc mean that _start initially
    * must be loaded at or above 0xffff0000 or below 0x100000.
    *
    * The linker scripts computes gdtptr16_offset by simply returning
    * the low 16 bits.  This means that the intial segment used
    * when start is called must be 64K aligned.  This should not
    * restrict the address as the ip address can be anything.
    *
    * Also load an IDT with NULL limit to prevent the 16bit IDT being used
    * in protected mode before c_start.S sets up a 32bit IDT when entering
    * ram stage. In practise: CPU will shutdown on any exception.
    * See IA32 manual Vol 3A 19.26 Interrupts.
    */

   movw   %cs, %ax
   shlw   $4, %ax
   movw   $nullidt_offset, %bx
   subw   %ax, %bx
   lidt   %cs:(%bx)
   movw   $gdtptr16_offset, %bx
   subw   %ax, %bx
   data32  lgdt %cs:(%bx)

   movl   %cr0, %eax
   andl   $0x7FFAFFD1, %eax /* PG,AM,WP,NE,TS,EM,MP = 0 */
   orl   $0x60000001, %eax /* CD, NW, PE = 1 */
   movl   %eax, %cr0

   /* Restore BIST to %eax */
   movl   %ebp, %eax

   /* Now that we are in protected mode jump to a 32 bit code segment. */
   data32   ljmp   $ROM_CODE_SEG, $__protected_start

   /**
    * The gdt is defined in entry32.inc, it has a 4 Gb code segment
    * at 0x08, and a 4 GB data segment at 0x10;
    */
.align   4
.globl gdtptr16
gdtptr16:
   .word   gdt_end - gdt -1 /* compute the table limit */
   .long   gdt       /* we know the offset */

.align   4
.globl nullidt
nullidt:
   .word   0   /* limit */
   .long   0
   .word   0

.globl _estart
_estart:
   .code32


Видно, что reset.inc нужен только для того чтобы занять нужное место и отправить на начало кода. Entry16.inc практически сразу после включения отключает буфер трансляции TLB. Чисто на всякий случай. Потом переходит в защищенный режим и передает управление дальше...

Re: использование х86

Ср ноя 07, 2012 19:28:15

Не утерпел. Вашу энергию да в нужное русло... К чему изучать сии старые технологии, если хотелось изучить х86 - можно на компьютере или взять старую материнскую плату с 286/386/486/586 процессором (которых валом на мусорке) - там уже и биос есть, и все прочее.
Ну я бы взял STM32 Discovery и ваял чего ни будь полезное.

Re: использование х86

Чт ноя 08, 2012 00:18:49

shame писал(а): ...
- Глянул немного мануал :
-- при старте WatchDog - включен и его надо или отключить или дергать:

стр.54 The WDT is inactive after reset. Проверено в железе. Действительно, WDT не работает если его не включить.
...

Вот и верь документации! Два документа от АМД пишут противоположные вещи! :
support.amd.com/us/Embedded_TechDocs/20732e_ds.pdf
стр.54 "Note: The Watchdog Timer (WDT) is inactive after reset"
datasheets.chipdb.org/AMD/8018x/21684B1.pdf
стр.8-1 "Note: The Watchdog Timer (WDT) is active after reset"

Так что мой вам совет, отключите на всякий случай, может в вашей версии он и активный ! :shock:
Ваша версия документа 2006 год, моя 1998.. и предпологаю что модем у вас старенький и чип тоже наверное старый :)
Ответить