Today I tested NuttX running the LVGL demo on LPCXpresso54628.
Here you can find the steps needed to get it working.
First compile the firmware to create the nuttx.bin:
$ ./tools/configure.sh lpcxpresso-lpc54628/lvgl $ make menuconfig $ make
Now you can flash the firmware using JLinkExe on Linux.
You can use the LPC54608J512 even to flash the LPC54628:
$ sudo JLinkExe -if SWD -device LPC54608J512 SEGGER J-Link Commander V6.32h (Compiled Jul 5 2018 18:15:02) DLL version V6.32h, compiled Jul 5 2018 18:14:58 Connecting to J-Link via USB...O.K. Firmware: J-Link ARM V8 compiled Nov 28 2014 13:44:46 Hardware version: V8.00 S/N: 268006167 License(s): FlashBP, GDB OEM: SEGGER-EDU VTref=3.293V Type "connect" to establish a target connection, '?' for help
Run “connect” command:
J-Link> connect Specify target interface speed [kHz]. : 4000 kHz Speed> Device "LPC54608J512" selected. Connecting to target via SWD Found SW-DP with ID 0x2BA01477 Found SW-DP with ID 0x2BA01477 Scanning AP map to find all available APs AP[1]: Stopped AP scan as end of AP map has been reached AP[0]: AHB-AP (IDR: 0x24770011) Iterating through AP map to find AHB-AP to use AP[0]: Core found AP[0]: AHB-AP ROM base: 0xE00FF000 CPUID register: 0x410FC241. Implementer code: 0x41 (ARM) Found Cortex-M4 r0p1, Little endian. FPUnit: 6 code (BP) slots and 2 literal slots CoreSight components: ROMTbl[0] @ E00FF000 ROMTbl[0][0]: E000E000, CID: B105E00D, PID: 000BB00C SCS-M7 ROMTbl[0][1]: E0001000, CID: B105E00D, PID: 003BB002 DWT ROMTbl[0][2]: E0002000, CID: B105E00D, PID: 002BB003 FPB ROMTbl[0][3]: E0000000, CID: B105E00D, PID: 003BB001 ITM ROMTbl[0][4]: E0040000, CID: B105900D, PID: 000BB9A1 TPIU ROMTbl[0][5]: E0041000, CID: B105900D, PID: 000BB925 ETM Cortex-M4 identified.
Finally flash nuttx.bin using the loadbin command:
J-Link>loadbin ./nuttx.bin 0 Halting CPU for downloading file. Downloading file [./nuttx.bin]... Comparing flash [100%] Done. Erasing flash [100%] Done. Programming flash [100%] Done. Verifying flash [100%] Done. J-Link: Flash download: Bank 0 @ 0x00000000: 1 range affected (360448 bytes) J-Link: Flash download: Total time needed: 3.314s (Prepare: 0.058s, Compare: 0.009s, Erase: 0.991s, Program: 2.245s, Verify: 0.005s, Restore: 0.003s) O.K. J-Link> exit
Reset the board and you should see the touchscreen calibration screen.
And then:
Hi Alan,
I’ve some questions about Nuttx:
1. Is there any tutorial about migration from FreeRTOS to Nuttx (an easier way)?
2. The compilation results only in binary files, like .hex and .bin, can I generate .elf file to debug with Jlink?
3. Now, my products have a custom bootloader, can I keep my custom bootloader and if possibly, which the files I need to change (Linker files, more specifically)?
4. Where can I put my application? “Apps” directory? If yes, how to handle the both projects in eclipse, for example? how to debug both projects in the same time?
Congratulation for your efforts in Nuttx advertising.
Hi Gabriel,
1. I’m not aware about any documentation about migration, but NuttX is easy you learn as you can see on my videos at NuttX Channel ;
2. It results in ELF file as well, the file “nuttx” is an ELF file ;
3. Yes, nuttx can boot from a bootloader, see the pcduino port, it boots from U-Boot ;
4. You can put it on apps/ directory or you can compile NuttX as library and just load your application on Eclipse, search about it here on my blog.
Thank you very much Gabriel, nice to see more Brazilians interested on NuttX.
BR,
Alan