Help - Search - Members - Calendar
Full Version: Wifi_CheckInit not connecting
1Emulation.Com > Official Emulator Forums > DSWifi
shine
Hi,

I've just download dswifi to do some attempts on ds coding.
I first downloaded the examples and worked perfectly on my AP, wifi_lib_test.nds works great and I think everything is ok (both on emulators and real hardware).
Then I tried to compile the file for myself; after very little and non important tweak, it compiles with no errors but when running on both DS or emulators, it never gets out of this loop:

CODE
while(Wifi_CheckInit()==0) { // wait for arm7 to be initted successfully
            while(VCOUNT>192); // wait for vblank
            while(VCOUNT<192);
        }


I've tried compiling both wifi_lib_test and wifi_example1, but I get the same problem on both samples.
As the examples are from version 0.3a but devKitPro installed 0.3.4, maybe there is any internal function that is different and doesn't work the same way?
To reduce the scope, I also replaced libraries 0.3.4 to 0.3a, but the problem still was present. So maybe is a problem with the current libnds/devkitpro libraries?
Any hint?

Thanks in advance and congrats for this great library

Edit:
I've also downloaded PAlib and test if it works there, but I got the same problem:
it hangs in PA_ConnectWifiWFC. Looking at source code I see it's the same code as above, so it seems Wifi_CheckInit is always returning 0.
Wilsom
Hi There,

Yes I have exactly the same issue been over the code many times and from the exmaples seems to be the same issue.

All the Best
Mike



QUOTE (shine @ Feb 6 2008, 05:02 AM) *
Hi,

I've just download dswifi to do some attempts on ds coding.
I first downloaded the examples and worked perfectly on my AP, wifi_lib_test.nds works great and I think everything is ok (both on emulators and real hardware).
Then I tried to compile the file for myself; after very little and non important tweak, it compiles with no errors but when running on both DS or emulators, it never gets out of this loop:

CODE
while(Wifi_CheckInit()==0) { // wait for arm7 to be initted successfully
            while(VCOUNT>192); // wait for vblank
            while(VCOUNT<192);
        }


I've tried compiling both wifi_lib_test and wifi_example1, but I get the same problem on both samples.
As the examples are from version 0.3a but devKitPro installed 0.3.4, maybe there is any internal function that is different and doesn't work the same way?
To reduce the scope, I also replaced libraries 0.3.4 to 0.3a, but the problem still was present. So maybe is a problem with the current libnds/devkitpro libraries?
Any hint?

Thanks in advance and congrats for this great library

Edit:
I've also downloaded PAlib and test if it works there, but I got the same problem:
it hangs in PA_ConnectWifiWFC. Looking at source code I see it's the same code as above, so it seems Wifi_CheckInit is always returning 0.
Wilsom
Here is my test code .... I dont think its in the code but anyway...all coding examples are hanging at wifi-checkinit();

------------------------cut-----------------------

#include <nds.h>
#include <dswifi9.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <stdio.h>

#define VCOUNT (*((u16 volatile *) 0x04000006))


void initGraphics(){

videoSetMode(0);
videoSetModeSub(MODE_0_2D | DISPLAY_BG0_ACTIVE);
vramSetBankC(VRAM_C_SUB_BG);

SUB_BG0_CR = BG_MAP_BASE(31);

BG_PALETTE_SUB[255] = RGB15(31,31,31);
consoleInitDefault((u16*)SCREEN_BASE_BLOCK_SUB(31),(u16*)CHAR_BASE_BLOCK_SUB(0), 16);
}


void Timer_50ms(void) {
Wifi_Timer(50);
}


void arm9_synctoarm7() {
REG_IPC_FIFO_TX = 0x87654321;
}


void arm9_fifo() {
u32 value = REG_IPC_FIFO_RX;
if ( value == 0x87654321 ) Wifi_Sync();
}

int main(void) {

initGraphics();

iprintf("Start Main\n");
{
REG_IPC_FIFO_CR = IPC_FIFO_ENABLE | IPC_FIFO_SEND_CLEAR;
u32 Wifi_pass= Wifi_Init(WIFIINIT_OPTION_USELED);
REG_IPC_FIFO_TX = 0x12345678;
REG_IPC_FIFO_TX = Wifi_pass;

*((volatile u16 *)0x0400010E) = 0;
irqInit();
irqSet(IRQ_TIMER3, Timer_50ms);
irqEnable(IRQ_TIMER3);
irqSet(IRQ_FIFO_NOT_EMPTY, arm9_fifo);
irqEnable(IRQ_FIFO_NOT_EMPTY);

REG_IPC_FIFO_CR = IPC_FIFO_ENABLE | IPC_FIFO_RECV_IRQ;

Wifi_SetSyncHandler(arm9_synctoarm7);

// Timer3 ????
*((volatile u16 *)0x0400010C) = -6553; // 6553.1 * 256 cycles = ~50ms;
*((volatile u16 *)0x0400010E) = 0x00C2; // enable, irq, 1/256 clock

iprintf("Wifi Check init start \n");
while ( Wifi_CheckInit() == 0 ) {
while(VCOUNT>192);
while(VCOUNT<192);
}

}

iprintf("WiFi Initiated\n");
{
int i;


Wifi_AutoConnect();
while(1) {
i = Wifi_AssocStatus();
if ( i == ASSOCSTATUS_ASSOCIATED ) {
iprintf("Associated\n");
break;
}
if ( i == ASSOCSTATUS_CANNOTCONNECT ) {
iprintf("Can Not Connect\n");
break;
}
}
}

while(1) {
swiWaitForVBlank();
}
return 0;
}
colintoal
QUOTE (Wilsom @ Feb 11 2008, 02:09 AM) *
Here is my test code .... I dont think its in the code but anyway...all coding examples are hanging at wifi-checkinit();

------------------------cut-----------------------

#include <nds.h>
#include <dswifi9.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <stdio.h>

#define VCOUNT (*((u16 volatile *) 0x04000006))


void initGraphics(){

videoSetMode(0);
videoSetModeSub(MODE_0_2D | DISPLAY_BG0_ACTIVE);
vramSetBankC(VRAM_C_SUB_BG);

SUB_BG0_CR = BG_MAP_BASE(31);

BG_PALETTE_SUB[255] = RGB15(31,31,31);
consoleInitDefault((u16*)SCREEN_BASE_BLOCK_SUB(31),(u16*)CHAR_BASE_BLOCK_SUB(0), 16);
}


void Timer_50ms(void) {
Wifi_Timer(50);
}


void arm9_synctoarm7() {
REG_IPC_FIFO_TX = 0x87654321;
}


void arm9_fifo() {
u32 value = REG_IPC_FIFO_RX;
if ( value == 0x87654321 ) Wifi_Sync();
}

int main(void) {

initGraphics();

iprintf("Start Main\n");
{
REG_IPC_FIFO_CR = IPC_FIFO_ENABLE | IPC_FIFO_SEND_CLEAR;
u32 Wifi_pass= Wifi_Init(WIFIINIT_OPTION_USELED);
REG_IPC_FIFO_TX = 0x12345678;
REG_IPC_FIFO_TX = Wifi_pass;

*((volatile u16 *)0x0400010E) = 0;
irqInit();
irqSet(IRQ_TIMER3, Timer_50ms);
irqEnable(IRQ_TIMER3);
irqSet(IRQ_FIFO_NOT_EMPTY, arm9_fifo);
irqEnable(IRQ_FIFO_NOT_EMPTY);

REG_IPC_FIFO_CR = IPC_FIFO_ENABLE | IPC_FIFO_RECV_IRQ;

Wifi_SetSyncHandler(arm9_synctoarm7);

// Timer3 ????
*((volatile u16 *)0x0400010C) = -6553; // 6553.1 * 256 cycles = ~50ms;
*((volatile u16 *)0x0400010E) = 0x00C2; // enable, irq, 1/256 clock

iprintf("Wifi Check init start \n");
while ( Wifi_CheckInit() == 0 ) {
while(VCOUNT>192);
while(VCOUNT<192);
}

}

iprintf("WiFi Initiated\n");
{
int i;


Wifi_AutoConnect();
while(1) {
i = Wifi_AssocStatus();
if ( i == ASSOCSTATUS_ASSOCIATED ) {
iprintf("Associated\n");
break;
}
if ( i == ASSOCSTATUS_CANNOTCONNECT ) {
iprintf("Can Not Connect\n");
break;
}
}
}

while(1) {
swiWaitForVBlank();
}
return 0;
}


I'm having the same problem with latest DevKitPro and dswifilib -- the example and test app hang at 'initializing ARM7' -- it looks like the IPC is broken and I thought it might have something to do with the latest devkitPro - but I haven't had a chance to debug through it yet.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2009 Invision Power Services, Inc.