chipKIT® Development Platform

Inspired by Arduino™

CAN Lib. and Examples

Created Tue, 11 Sep 2012 16:17:15 +0000 by Bravo685


Bravo685

Tue, 11 Sep 2012 16:17:15 +0000

Hi everyone,

I have just started working with the Network board and seem to be getting alot of undefined references when compiling the CAN Demo example. I sure could use your help with why this is.

I do have the correct board selected 'MAX32'. I also have an 'MX7cK' and have check both lib downloads to see if the examples are different - but they are the same. I have pasted in my output from the mpide software. If anyone has worked with this and would like to share some insight or experiences on where to begin I would appreciate it.

Thanks

CanDemo.cpp.o: In function doCan2Interrupt()': C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:742: undefined reference to CAN::getModuleEvent()' C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:749: undefined reference to CAN::getPendingEventCode()' C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:766: undefined reference to CAN::enableChannelEvent(CAN::CHANNEL, CAN::CHANNEL_EVENT, bool)' CanDemo.cpp.o: In function doCan1Interrupt()': C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:670: undefined reference to CAN::getModuleEvent()' C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:677: undefined reference to CAN::getPendingEventCode()' C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:694: undefined reference to CAN::enableChannelEvent(CAN::CHANNEL, CAN::CHANNEL_EVENT, bool)' CanDemo.cpp.o: In function __static_initialization_and_destruction_0': C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:102: undefined reference to CAN::~CAN()' C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:101: undefined reference to CAN::~CAN()' C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:101: undefined reference to CAN::CAN(CAN::MODULE)' C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:102: undefined reference to CAN::CAN(CAN::MODULE)' CanDemo.cpp.o: In function initCan1(unsigned int)': C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:243: undefined reference to CAN::enableModule(bool)' C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:245: undefined reference to CAN::setOperatingMode(CAN::OP_MODE)' C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:247: undefined reference to CAN::getOperatingMode()' C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:263: undefined reference to CAN::setSpeed(CAN::BIT_CONFIG const*, unsigned int, unsigned int)' C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:274: undefined reference to CAN::assignMemoryBuffer(void*, unsigned int)' C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:282: undefined reference to CAN::configureChannelForTx(CAN::CHANNEL, unsigned int, CAN::TX_RTR, CAN::TXCHANNEL_PRIORITY)' C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:283: undefined reference to CAN::configureChannelForRx(CAN::CHANNEL, unsigned int, CAN::RX_DATA_MODE)' C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:292: undefined reference to CAN::configureFilter(CAN::FILTER, unsigned int, CAN::ID_TYPE)' C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:293: undefined reference to CAN::configureFilterMask(CAN::FILTER_MASK, unsigned int, CAN::ID_TYPE, CAN::FILTER_MASK_TYPE)' C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:294: undefined reference to CAN::linkFilterToChannel(CAN::FILTER, CAN::FILTER_MASK, CAN::CHANNEL)' C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:295: undefined reference to CAN::enableFilter(CAN::FILTER, bool)' C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:303: undefined reference to CAN::enableChannelEvent(CAN::CHANNEL, CAN::CHANNEL_EVENT, bool)' C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:304: undefined reference to CAN::enableModuleEvent(CAN::MODULE_EVENT, bool)' C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:309: undefined reference to CAN::setOperatingMode(CAN::OP_MODE)' C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:310: undefined reference to CAN::getOperatingMode()' CanDemo.cpp.o: In function initCan2(unsigned int)': C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:340: undefined reference to CAN::enableModule(bool)' C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:342: undefined reference to CAN::setOperatingMode(CAN::OP_MODE)' C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:343: undefined reference to CAN::getOperatingMode()' C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:359: undefined reference to CAN::setSpeed(CAN::BIT_CONFIG const*, unsigned int, unsigned int)' C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:370: undefined reference to CAN::assignMemoryBuffer(void*, unsigned int)' C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:378: undefined reference to CAN::configureChannelForTx(CAN::CHANNEL, unsigned int, CAN::TX_RTR, CAN::TXCHANNEL_PRIORITY)' C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:379: undefined reference to CAN::configureChannelForRx(CAN::CHANNEL, unsigned int, CAN::RX_DATA_MODE)' C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:388: undefined reference to CAN::configureFilter(CAN::FILTER, unsigned int, CAN::ID_TYPE)' C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:389: undefined reference to CAN::configureFilterMask(CAN::FILTER_MASK, unsigned int, CAN::ID_TYPE, CAN::FILTER_MASK_TYPE)' C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:390: undefined reference to CAN::linkFilterToChannel(CAN::FILTER, CAN::FILTER_MASK, CAN::CHANNEL)' C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:391: undefined reference to CAN::enableFilter(CAN::FILTER, bool)' C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:399: undefined reference to CAN::enableChannelEvent(CAN::CHANNEL, CAN::CHANNEL_EVENT, bool)' C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:400: undefined reference to CAN::enableModuleEvent(CAN::MODULE_EVENT, bool)' C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:405: undefined reference to CAN::setOperatingMode(CAN::OP_MODE)' C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:406: undefined reference to CAN::getOperatingMode()' CanDemo.cpp.o: In function setup': C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:165: undefined reference to CAN::attachInterrupt(void (*)())' C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:166: undefined reference to CAN::attachInterrupt(void (*)())' CanDemo.cpp.o: In function txCAN1(unsigned int)': C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:433: undefined reference to CAN::getTxMessageBuffer(CAN::CHANNEL)' C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:458: undefined reference to CAN::updateChannel(CAN::CHANNEL)' C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:464: undefined reference to CAN::flushTxChannel(CAN::CHANNEL)' CanDemo.cpp.o: In function txCAN2(unsigned int)': C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:492: undefined reference to CAN::getTxMessageBuffer(CAN::CHANNEL)' C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:517: undefined reference to CAN::updateChannel(CAN::CHANNEL)' C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:523: undefined reference to CAN::flushTxChannel(CAN::CHANNEL)' CanDemo.cpp.o: In function rxCAN1()': C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:564: undefined reference to CAN::getRxMessage(CAN::CHANNEL)' C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:576: undefined reference to CAN::updateChannel(CAN::CHANNEL)' C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:577: undefined reference to CAN::enableChannelEvent(CAN::CHANNEL, CAN::CHANNEL_EVENT, bool)' CanDemo.cpp.o: In function rxCAN2()': C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:617: undefined reference to CAN::getRxMessage(CAN::CHANNEL)' C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:629: undefined reference to CAN::updateChannel(CAN::CHANNEL)' C:\Users\MPI_user\AppData\Local\Temp\build1652432450850590391.tmp/CanDemo.cpp:630: undefined reference to CAN::enableChannelEvent(CAN::CHANNEL, CAN::CHANNEL_EVENT, bool)' collect2: ld returned 1 exit status


JordanR

Tue, 11 Sep 2012 21:37:00 +0000

Hello Bravo685,

Where did you save the Network Libraries to after you downloaded them? Make sure that you have saved them in a folder called "libraries" in your Sketchbook. The directory to the included "chipKITCAN.h" should be the following:

[your sketchbook directory]\libraries\chipKITCAN

Inside chipKITCAN folder, you should have folders called "documents" and "examples", as well as three files: "chipKITCAN.cpp", "chipKITCAN.h", and "keywords.txt".

Best Regards,

Jordan R Digilent