10 years, 1 month ago.

LPC4088, emWin and mbed

I'm trying to get this mix running. It works with the mbed supplied sample app_emwin1 on my LPC4088 with 5.3" display from EA. The programm starts, the touch calibration works and the window is showing, but the touch events do not work. So, now I want to debug and I exported to LPCXpresso7 and tried to compile. But now I get a lot of linker errors because the libs use different FP settings. I used the emWin lib with hard FP as suggested in the mbed tutorial and I've tried also different compiler/linker settings for architecture/FP. What model is the mbed lib using? The linker complains that mbed is using 'VFP registers'. Is it a better solution to checkout the mbed sources and to compile it with my (emWin compatible) settings? Or is the new GCC 4.8 the problem?

1 Answer

10 years, 1 month ago.

I'm a step further, it works but not completely:

  • I had to compile&link with the option 'FPv4-SP (Soft ABI)'
  • but then I got link errors from the mbed lib, which uses hard ABI
  • I loaded the mbed sources and built the lib with modified settings: if target.core == "Cortex-M4F": self.cpu.append("-mfpu=fpv4-sp-d16") self.cpu.append("-mfloat-abi=soft")
  • I had to use the generated linker script from LPCXpresso, but with modified RAM startaddress (why?)

Then sample app_emWin1 stopped with hardfault at error: ticker.attach(&pollTouch, 0.05); ok: ticker.attach_us(&pollTouch, 50000);

the call to ticker.attach_us() without floating point argument did work and now the app is running. But I don't know why I get the hardfault with the call to ticker.attach().