| | undefined reference to `___ucmpsi2'
|
|
I get this error when linking if I have the following in my source code in a wait_event function: #define THRESHOLD (unsigned short)50 static wakeup_t light_found(wakeup_t sens_num) { switch (sens_num) { case 2: return (LIGHT(SENSOR_2) > THRESHOLD); (...) (24 years ago, 18-Jan-01, to lugnet.robotics.rcx.legos)
|
|
| | Re: undefined reference to `___ucmpsi2'
|
|
Hi, The problem is that wakeup_t is an unsigned long, and in order to save space, the switch statement is optimized to call a library comparator, ucmpsi2. Since the argument to ds_scale is an unsigned int, the argument to LIGHT should also be an (...) (24 years ago, 18-Jan-01, to lugnet.robotics.rcx.legos)
|
|
| | Re: undefined reference to `___ucmpsi2'
|
|
(...) Another choice may be a cast in the switch statement, like this: static wakeup_t light_found(wakeup_t sens_num) { switch ((unsigned int)sens_num) { case 2: return (LIGHT(SENSOR_2) > THRESHOLD); break; case 3: return (LIGHT(SENSOR_3) > (...) (24 years ago, 18-Jan-01, to lugnet.robotics.rcx.legos)
|
|
| | Re: undefined reference to `___ucmpsi2'
|
|
(...) With regards to this, it appears that Markus left out two necessary functions in lib/mint. Specifically, cmpsi2 and ucmpsi2. These are a part of librcx but apparently they were omitted from LegOS when Markus included support for the other (...) (24 years ago, 19-Jan-01, to lugnet.robotics.rcx.legos)
|