Автор Тема: Cделать из intel core i5-3210m intel 8086  (Прочитано 1370 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн castanel

  • Новичок форума
  • Topic Author
  • Сообщений: 8
  • Jabber: gsh[sc]@team-sc.ru
Cделать из intel core i5-3210m intel 8086
« : 23 Апрель 2015, 16:56:05 »
Эта программа-бипер на Си адекватна для intel 8086.
#include <stdlib.h>
#include <stdio.h>
main()
{
   int store;
   store = inp (97);
   printf("port 97 = %d\n", store);
   outp(97, 79);
   outp(97, store);
}
На intel core i5-3210m gcc пишет при buildе
Цитировать
undefined reference to `inp'|
undefined reference to `outp'|
undefined reference to `outp'|
.
Есть такая библиотека, чтобы эти операторы стали делать на новом проце то же, что на старом?
***
IDE - codeblocks, ось - jessie
 

Оффлайн ihammers

  • Главный модератор
  • Ветеран
  • *****
  • Сообщений: 1742
  • Debian GNU/Linux Stretch
    • Алтайская Группа Пользователей Linux
  • Jabber: ihammers@jabber.ru
Re: Cделать из intel core i5-3210m intel 8086
« Ответ #1 : 24 Апрель 2015, 05:48:03 »
Есть такая библиотека, чтобы эти операторы стали делать на новом проце то же, что на старом?
Проблема не в старом/новом процессоре, а в реализации inp и outp, которые не описаны в stdio.h, stdlib.h.

Дополнительная информация: stackoverflow, msdn.

Вам нужно искать реализацию inp(), outp() или переписывать исходную программу.

PS: Вечером постараюсь обновить сообщение.
Debian GNU/Linux Stretch, kernel 4.9.0-5-amd64,
LXQt/KDE/OpenBox AMD Phenon X4 / 16Gb RAM / ATI HD7750 Silent
_______________________________
Debian GNU/Linux Stretch, kernel 4.9.0-5-amd64, LXQt/KDE/OpenBox
Acer Aspire One 722 AMD C60 / 4Gb RAM / ATI HD6290
 

Оффлайн vic5710

  • Местный житель
  • ***
  • Сообщений: 452
  • не умножайте сущностей сверх необходимых
Re: Cделать из intel core i5-3210m intel 8086
« Ответ #2 : 24 Апрель 2015, 10:08:48 »
а в чем смысл этих команд? они определены в conio.h, а это ЕМНИП для  MSDOS.
если просто звук то читайте man beep
 


Оффлайн castanel

  • Новичок форума
  • Topic Author
  • Сообщений: 8
  • Jabber: gsh[sc]@team-sc.ru
Re: Cделать из intel core i5-3210m intel 8086
« Ответ #3 : 24 Апрель 2015, 16:09:12 »
vic5710, подключал conio.h на w8, не повлияло. может операторы ввода и вывода процпортов стали другими? или библиотеку надо качать, а я не умею её втюхать компилятору
ihammers, переписать можно, если этим операторам есть простая замена
« Последнее редактирование: 24 Апрель 2015, 16:16:54 от castanel »
 

Оффлайн vic5710

  • Местный житель
  • ***
  • Сообщений: 452
  • не умножайте сущностей сверх необходимых
Re: Cделать из intel core i5-3210m intel 8086
« Ответ #4 : 24 Апрель 2015, 16:38:54 »
vic5710, подключал conio.h на w8, не повлияло. может операторы ввода и вывода процпортов стали другими? или библиотеку надо качать, а я не умею её втюхать компилятору
conio.h применялась в мсдос-вин3-вин95. на линухе ее вообще нет
 

Оффлайн castanel

  • Новичок форума
  • Topic Author
  • Сообщений: 8
  • Jabber: gsh[sc]@team-sc.ru
Re: Cделать из intel core i5-3210m intel 8086
« Ответ #5 : 24 Апрель 2015, 17:52:09 »
vic5710, таки значит, операторы/библи нужны другие
 

Оффлайн vic5710

  • Местный житель
  • ***
  • Сообщений: 452
  • не умножайте сущностей сверх необходимых
Re: Cделать из intel core i5-3210m intel 8086
« Ответ #6 : 24 Апрель 2015, 18:51:35 »
http://forum.ubuntu.ru/index.php?topic=250560.0
http://www.opennet.ru/docs/HOWTO-RU/mini/IO-Port-Programming.html
скорей всего через /dev/port

Сообщение объединено: 24 Апрель 2015, 18:54:45
http://www.linuxcookbook.ru/howto/mini/IO-Port-Programming/x47.html
три минуты гугла
« Последнее редактирование: 24 Апрель 2015, 18:54:45 от vic5710 »
 
Пользователи, которые поблагодарили этот пост: castanel

Оффлайн castanel

  • Новичок форума
  • Topic Author
  • Сообщений: 8
  • Jabber: gsh[sc]@team-sc.ru
Re: Cделать из intel core i5-3210m intel 8086
« Ответ #7 : 24 Апрель 2015, 23:39:39 »
vic5710, #include <asm/io.h> был бы панацеей, если б был. а dev/port - вообще метафизика.  /usr/include/asm/ в jessie нет, зато есть бесполезное для моей ситуации /usr/include/asm-generic/ioctl.h
поставил эту муть, но определений для inp и outp в последующем содержимом /usr/src/linux-headers-3.2.0-4-common/include/asm-generic/ не оказалось.
 

Оффлайн vic5710

  • Местный житель
  • ***
  • Сообщений: 452
  • не умножайте сущностей сверх необходимых
Re: Cделать из intel core i5-3210m intel 8086
« Ответ #8 : 25 Апрель 2015, 00:09:22 »
поставил эту муть, но определений для inp и outp в последующем содержимом /usr/src/linux-headers-3.2.0-4-common/include/asm-generic/ не оказалось.
для такого древнего проца лучше откатиться. в сквизе /dev/port есть. inp/outp в линухе нет. читайте ссылки там пример есть


Сообщение объединено: [time]25 Апрель 2015, 00:13:43[/time]
https://packages.debian.org/search?suite=jessie&arch=i386&searchon=contents&keywords=asm%2Fio.h
man mknod

Сообщение объединено: 25 Апрель 2015, 00:21:04
https://packages.debian.org/jessie/i386/linux-headers-3.16.0-4-common/filelist
« Последнее редактирование: 25 Апрель 2015, 00:21:04 от vic5710 »
 

Оффлайн Olej

  • Местный житель
  • ***
  • Сообщений: 444
Re: Cделать из intel core i5-3210m intel 8086
« Ответ #9 : 19 Июнь 2015, 16:28:46 »
Вам нужно искать реализацию inp(), outp() или переписывать исходную программу.

Вот вам пример маленького работающего приожения с inp(), outp() ... нужные инклуды увидите сами ...
#include <stdio.h>
#include <unistd.h>
#include <sys/io.h>
#include <stdlib.h>
#include <fcntl.h>
#include <errno.h>

#define PARPORT_BASE 0x378

void do_io( unsigned long addr ) {
   unsigned char zero = 0, readout = 0;
   printf( "\twriting: 0x%02x to 0x%lx\n", zero, addr );
   outb( zero, addr );
   usleep( 1000 );
   readout = inb( addr + 1 );
   printf( "\treading: 0x%02x from 0x%lx\n", readout, addr + 1 );
}
 

Теги: