I'm trying to get the vusb (Google Code Archive - Long-term storage for Google Code Project Hosting.) code (the UsbKeyboard branch) installed and working on Arduino-22 and I need some help understanding how Arduino handles linked .S (assembly) files.
What is the correct way to link a .S file to a project? I have gone through the Sketch > Add file... dialog which appears to work -- the selected file (usbdrvasm.S) is now in the data/ subdirectory of my sketch. But when I try to compile I get the error
undefined reference to `usbCrc16Append'
This function is defined in usbdrvasm.S and (I believe properly) prototyped in another header file:
#ifdef __cplusplus
extern "C"{
#endif
extern unsigned usbCrc16Append(unsigned data, uchar len);
#ifdef __cplusplus
} // extern "C"
#endif
Is this error a sign of the assembly not being properly linked? Of the prototype in the header not working properly? Some other toolchain error?