Programming Guidelines for the EE 522R Robot - Use standard C only (no C++). You can use C++ style comments. - Do not use any standard library functions. Instead of printf() use print(), PrintInt(), PrintWord(), etc. - Do not use free(). You can allocate memory using the function void *MemAlloc(unsigned numBytes) but cannot free it. - The processor is 32-bit, but to avoid ambiguity and increase portability you can use the types defined in SystemTypes.h (int8, uint8, int16, uint16, int32, uint32). - Avoid using floating point (float, double) unless you NEED the dynamic range it provides. Use fixed point arithmetic instead (see FixedPoint.*). - Be memory conscious of your code size, data size, and stack usage. You can allocate lots of memory with MemAlloc() but you should keep code small and use statically allocated memory only for small pieces of data. - Download the sample project to see what functions are available to you. Any uC/OS-II function is potentially available as well as those in Utils.*, FixedMath.*, Wireless.*, FrameBuffer.*, MemecIO.*, and Timer.*. - If you plan on being able to reset the robot (via the reset button) then you must initialize global variables in initialization functions rather than statically. Otherwise they will not be initialized after a reset. Also, static local variables must be avoided because there is no way to initialize them after a reset. This is because global and static variables are set to their initial values only when the code and data is loaded (i.e., when the code is downloaded to the robot).