The Dark Side of Hardware Upgrade Forum

...bringing out the worst in you since 2003...
Oggi è lun ott 05, 2026 3:29 pm

Tutti gli orari sono UTC +1 ora


-->
-->

Apri un nuovo argomento Rispondi all’argomento  [ 9 messaggi ] 
Autore Messaggio
 Oggetto del messaggio: [c] watchdog da win a linux...
MessaggioInviato: lun nov 14, 2011 2:01 pm 
Schiavo
Avatar utente
Iscritto il: gio nov 04, 2004 2:21 pm
Messaggi: 3640
...come da titolo avrei la necessità di convertire questo piccolo programma da win a linux...premetto che non so nulla di c...vorresi solo capire come riscrivere e ricompilare tale codice su una macchina linux al fine di attivare il watchdog hardware presente nella motherboard...il codice è stato trovato nel manuale della scheda madre...


Codice:
//============================================
//DOS Watchdog sample program
//Please compile with Turbo C 3.0 to utilized the program
//============================================
int main()
{
//Initialized the WDT program
outp(0x2e,0x87);
outp(0x2e,0x01);
outp(0x2e,0x55);
outp(0x2e,0x55);
//Setting Logical Device Number to 0x07
outp(0x2e,0x07);
outp(0x2f,0x07);
//Set Timer Value(0x73 is LSB while 0x74 is MSB)
outp(0x2e,0x73);
outp(0x2f,0x14);//set to 20 sec (0x14)
//Set Timer Unit to Second/Minute(Bit 7 equal to 1 is second/0 is minute)
//Enable WDT (Bit 6 equal to 1 is enable/0 is disable)
outp(0x2e,0x72);
outp(0x2f,0xC0);//The unit is set as second
return 0;
}


...outp non è traducibile in java purtroppo e dovro' rifarlo in c...ma questo codice sotto gcc non vuole funzionare outp non viene riconosciuto...
_________________
...Hikari ti adoro...è la tazzina che mi rende così Immagine...Gore Business...sono un uomo...ho due emozioni : mangiare e scopare...se non ce l'ho in tiro fammi un toast...
Top
 Profilo Non connesso  
 
 Oggetto del messaggio: Re: [c] watchdog da win a linux...
MessaggioInviato: lun nov 14, 2011 3:50 pm 
Schiavo
Avatar utente
Iscritto il: ven lug 16, 2010 11:13 am
Messaggi: 716
Località: Esiliato da Tristram
outp non è una funzione standard del c.
Su gcc/Linux, leggendo da qui:
http://www.embeddedsys.com/subpages/res ... _Linux.pdf

outp deve essere sostituito con outb(), con i parametri passati in ordine inverso.
Inoltre leggo che prima devi abilitare l'accesso alle porte, tramite le funzioni ioperm() o iobl().
Pare inoltre che debba compilare col flag -O2

Leggo inoltre: "The iopl() and ioperm() functions require that the program be run with root privileges."

Ricordati anche gli include, altrimenti dubito tu riesca a compilare qualcosa:
#include <sys/io.h>
#include <stdio.h>

Non ho idea poi se sta roba sia aggiornata o meno, purtroppo l'accoppiata basso livello + funzioni non standard è sempre un'avventura.
_________________
Il sole è giallo
Top
 Profilo Non connesso  
 
 Oggetto del messaggio: Re: [c] watchdog da win a linux...
MessaggioInviato: lun nov 14, 2011 4:04 pm 
Schiavo
Avatar utente
Iscritto il: gio nov 04, 2004 2:21 pm
Messaggi: 3640
...grazie delle indicazioni...sfortunatamente ci sono arrivato da solo a parte delle tue dritte...allora sono arrivato a partorire questo...

Codice:
// Copyright 2011, Kees Cook <kees@outflux.net>, License: GPLv2 */
#include <unistd.h>
#include <stdio.h>
#include <sys/io.h>

int main()
{
   printf("via\n"); 


   /* access to watchdog port */
   if (ioperm(0x2e, 0x2e, 1) < 0) {
       perror("0x2e");
       return 1;
   }
   
   /* access to watchdog port */
   if (ioperm(0x2f, 0x2f, 1) < 0) {
       perror("0x2f");
       return 2;
   }

   sleep(1);
   printf("leggo \n");
   printf("%d\n",inb(0x2e));
   printf("scrivo 87\n");
   outb(0x2e,0x87);
   printf("leggo \n");
   printf("%d\n",inb(0x2e));
   outb(0x2e,0x01);
   printf("riscritto\n");
   outb(0x2e,0x55);
   printf("4\n");
   outb(0x2e,0x55);
   //Setting Logical Device Number to 0x07
   outb(0x2e,0x07);
   outb(0x2f,0x07);
   //Set Timer Value(0x73 is LSB while 0x74 is MSB)
   outb(0x2e,0x73);
   outb(0x2f,0x14);//set to 20 sec (0x14)
   //Set Timer Unit to Second/Minute(Bit 7 equal to 1 is second/0 is minute)
   //Enable WDT (Bit 6 equal to 1 is enable/0 is disable)
   outb(0x2e,0x72);
   outb(0x2f,0xC0);//The unit is set as second
   return 0;
}


...il problema che in base a scritture diverse sullo stesso indirizzo mi restituisce segmentation fault...come puo' essere?...inoltre a scritture avvenute o presunte tali la locazione non mostra variazioni in fase di lettura...
_________________
...Hikari ti adoro...è la tazzina che mi rende così Immagine...Gore Business...sono un uomo...ho due emozioni : mangiare e scopare...se non ce l'ho in tiro fammi un toast...
Top
 Profilo Non connesso  
 
 Oggetto del messaggio: Re: [c] watchdog da win a linux...
MessaggioInviato: lun nov 14, 2011 4:10 pm 
Schiavo
Avatar utente
Iscritto il: ven lug 16, 2010 11:13 am
Messaggi: 716
Località: Esiliato da Tristram
yorkeiser ha scritto:
outp deve essere sostituito con outb(), con i parametri passati in ordine inverso.
_________________
Il sole è giallo
Top
 Profilo Non connesso  
 
 Oggetto del messaggio: Re: [c] watchdog da win a linux...
MessaggioInviato: lun nov 14, 2011 4:15 pm 
Schiavo
Avatar utente
Iscritto il: gio nov 04, 2004 2:21 pm
Messaggi: 3640
...rovesciare gli argomenti dei metodi? :whistler: ...ora provo...
_________________
...Hikari ti adoro...è la tazzina che mi rende così Immagine...Gore Business...sono un uomo...ho due emozioni : mangiare e scopare...se non ce l'ho in tiro fammi un toast...
Top
 Profilo Non connesso  
 
 Oggetto del messaggio: Re: [c] watchdog da win a linux...
MessaggioInviato: lun nov 14, 2011 4:17 pm 
Schiavo
Avatar utente
Iscritto il: gio nov 04, 2004 2:21 pm
Messaggi: 3640
...compila e lancia senza errori...ora non ho la piu' pallida idea se stia funzionando...
_________________
...Hikari ti adoro...è la tazzina che mi rende così Immagine...Gore Business...sono un uomo...ho due emozioni : mangiare e scopare...se non ce l'ho in tiro fammi un toast...
Top
 Profilo Non connesso  
 
 Oggetto del messaggio: Re: [c] watchdog da win a linux...
MessaggioInviato: lun nov 14, 2011 4:27 pm 
Schiavo
Avatar utente
Iscritto il: ven lug 16, 2010 11:13 am
Messaggi: 716
Località: Esiliato da Tristram
Boh, non ho idea di come debba funzionare sto robo (è un dispositivo esterno collegato al PC?).
Le printf stampano i risultati attesi?
_________________
Il sole è giallo
Top
 Profilo Non connesso  
 
 Oggetto del messaggio: Re: [c] watchdog da win a linux...
MessaggioInviato: lun nov 14, 2011 4:30 pm 
Schiavo
Avatar utente
Iscritto il: gio nov 04, 2004 2:21 pm
Messaggi: 3640
yorkeiser @ ha scritto:
Boh, non ho idea di come debba funzionare sto robo (è un dispositivo esterno collegato al PC?).
Le printf stampano i risultati attesi?



...le printf stampano sempre 255 indipendentemente dalla scrittura fatta...in teoria dovrei essere riuscito con questa routine ad attivare l'hardware su i2c di riavvio in caso di blocco...cerco in giro info sul test...
_________________
...Hikari ti adoro...è la tazzina che mi rende così Immagine...Gore Business...sono un uomo...ho due emozioni : mangiare e scopare...se non ce l'ho in tiro fammi un toast...
Top
 Profilo Non connesso  
 
 Oggetto del messaggio: Re: [c] watchdog da win a linux...
MessaggioInviato: lun nov 14, 2011 5:47 pm 
Schiavo
Avatar utente
Iscritto il: gio nov 04, 2004 2:21 pm
Messaggi: 3640
...funge...togliendo tutti i printf e ripulendo un po' il codice...per la cronaca nel web le info su questo argomento sono pari a zero...the dark side best nerd site EVA...grazie yorkeiser...per info specifiche pemmeizzatemi...
_________________
...Hikari ti adoro...è la tazzina che mi rende così Immagine...Gore Business...sono un uomo...ho due emozioni : mangiare e scopare...se non ce l'ho in tiro fammi un toast...
Top
 Profilo Non connesso  
 
Visualizza ultimi messaggi:  Ordina per  
Apri un nuovo argomento Rispondi all’argomento  [ 9 messaggi ] 
-->

Tutti gli orari sono UTC +1 ora


Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite


Non puoi aprire nuovi argomenti
Non puoi rispondere negli argomenti
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi inviare allegati

Vai a:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traduzione Italiana phpBB.it