Menu

libnodave on Palm

Help
2007-05-03
2013-05-09
  • Nobody/Anonymous

    Hi,

    is it possible to compile the library to run on a Palm because such devices you can get very cheap now.
    Would be great for some quick diagnostics.

    Joe

     
    • Nobody/Anonymous

      I don't know how to compile software for a Palm. On a Palm? With a crosscompiler on PC? But I guess there is a C compiler, and the bit size is 32 bit. Then it shouldn't be a great problem. Just adapt the routines for opening, reading and writing to serial ports and network connections to what Palm OS provides.

      Thomas

       
    • Nobody/Anonymous

      There is a SDK and GCC to compile applications for Palm. Every application can be tested on an emulator which is running on Linux and Windows and has a serial port.

      I've tried to compile it (at first: nodave and testMPI). Therefore I defined __palmos__ like AVR to reduce the compiler errors.

      But now I get errors where I've no idea what that means like:
      "Signed .word overflow; switch may be too large; 33584 at 0x264"

      I mean that is a wrong compiler-/linker-switch...

      Joe

       
      • afk

        afk - 2007-05-03

        I think it's because a signed word with 16 bits has a maximum value of 32767, and there was an attempt to write the value 33584 to a signed word, which results in that error. Libnodave expects the width of an integer with 32 bit, and it seems that it's 16 bit on a Palm.

        Axel

         
    • Nobody/Anonymous

      Yes, probably you are right. That is my guess too. Because _every_ error has a value > 32767.

      I'll think about how can I fix this problem with a minimum of costs (if it is possible).

      Joe

       
    • Nobody/Anonymous

      I guess the error must be in daveStrerror which returns a message text for an error number. As error numbers can be greater than 32767 AND less than 0, the best way would be to use a 32 bit signed integer as int is on LINUX. Try to find a type for that. Than introduce a conditional define #ifdef __palmos__ and declare the parameter to daveStrerror to be of that type in case of __palmos__. If for some some reason the compiler cannot generate switch statements based on that type, than consider to split the switch statement into three, for <0, for 0 to 32767 and for >32767.

      Thomas

       

Anonymous
Anonymous

Add attachments
Cancel