LPCOpen 2_12 for LPC11U68 is broken

Showing results for 
Show  only  | Search instead for 
Did you mean: 

LPCOpen 2_12 for LPC11U68 is broken

Contributor IV

This week I bought the LPC11U68 ExpressoBoard from NXP, and then I downloaded the lpcopen_2_12_lpcxpresso_nxp_lpcxpresso_11u68.zip bundle. I also downloaded and installed the mcuxpressoide 10.0.0_344 IDE for my LinuxMint 18.2 box.


The freertos_blinky demo (in fact, all demos) refused to be compiled because a problem with building the chip library. There were two major problems:


1. A mismatch between a declaration and definition in a system function

../src/gpio_11u6x.c:96:6: error: conflicting types for 'Chip_GPIO_SetPortDIR'


It's easy to figure out what's going on if you look at the original declaration and definition

void Chip_GPIO_SetPortDIR(LPC_GPIO_T *pGPIO, uint8_t port, uint32_t pinMask, bool outSet);

void Chip_GPIO_SetPortDIR(LPC_GPIO_T *pGPIO, uint8_t port, uint8_t pinMask, bool outSet) {}


After fixing it in the function's definition (uint32_t) a new problem shows up.


2. A close brace in a system function

../src/syscon_11u6x.c: In function 'Chip_SYSCTL_SetPinInterrupt':
../src/syscon_11u6x.c:106:1: error: expected declaration or statement at end of input


In ../src/syscon_11u6x.c:61 there is this function definition:

void Chip_SYSCTL_SetPinInterrupt(uint32_t intno, uint8_t port, uint8_t pin)
  if (port == 0) {
    /* Pins P0.1 to P0.23 only */
    LPC_SYSCTL->PINTSEL[intno] = (uint32_t) pin;
  } else {
    /* P1.1 to P1.31 and P2.0 to P2.7 */
    LPC_SYSCTL->PINTSEL[intno] = (uint32_t) ((port - 1) * 32 + pin + 24);


That's not a typo! Chip_SYSCTL_SetPinInterrupt() doesn't have a close brace!!!!! Somebody forgot to close the function, and of course, to test the whole bundle.



I've been using the NXP tools for years, so it took me few minutes to figure out what the problems were and then fixed them, but some philosophical questions have arose:


1.- Did I downloaded a wrong bundle? It was the most recent I found, however, I could overlooked a newer one.


2.- If this is the most recent release: Did nobody note this problem in years?


3.- If this is the most recent release: What can I do so that a newer fixed release is build and share by NXP? It will be annoying for me and other programmers to fix the problems anytime a new workspace is created.


4.- This one is not so important: FreeRTOS is currently in release 9.0.0, and the bundle is including the 7.1 (and so many other bundles for other chips as well), so how the newest FreeRTOS release can be included in the bundles?



In the sake of making life easier for me and other programmers in the near future, I've attached the fixed bundle. It works as expected in LinuxMint 18.2. 



Original Attachment has been moved to: lpcopen_2_12_lpcxpresso_nxp_lpcxpresso_11u68_fixed.zip

Labels (1)
2 Replies

NXP Employee
NXP Employee

Hi Javier,

Thank you for reporting this bug, we have already send the report to the LPCOpen developers. Regarding your questions, that is the latest version available, we had already received reports from other customers but we still don't have a date for the fixed version to be released and about updating the FreeRTOS version, it should be fine for you to just drop the latest FreeRTOS files into your project, overwriting the previous files (make sure you back up the files first).

Best Regards!
Carlos Mendoza
Technical Support Engineer

0 Kudos

Contributor IV