I am sorry you are having trouble with the Wixel. I tried to reproduce the problem here, but I could not.
Here is the code I compiled:
void putchar(char c)
static uint16 lastSampleTime;
if ((uint16)(getMs() - lastSampleTime) > 50 && usbComTxAvailable() >= 64)
lastSampleTime = getMs();
printf("%u %u %u %u %u %u\r\n", P1_2, P1_3, P1_4, P1_5, P1_6, P1_7);
I compiled it using commit e837d08 of the Wixel SDK (the latest commit on github right now) and SDCC 3.4.0 for Windows. It outputs "0 0 0 0 0 0" when nothing is connected to the I/O lines, but I can make any of those numbers go to 1 by connecting an I/O pin to 3V3. I also used a multimeter to measure the current that flows into each pull-down resistor when it is connected to 3V3, and I got about 150 uA, as expected.
To rule out any potential issues with your compiler or code, I have attached the compiled WXL file that was generated from the code above:
test.wxl (18.7 KB)
Could you try running that file on your Wixel and see if you get the same results? You can write it to the Wixel by running:
wixelcmd write test.wxl