Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
10 years, 10 months ago.
How to Build HDK Firmware
Hi, I'm struggling to understand how to build the firmware used by the HDK. I know there's a cookbook page that outlines the structure and process but I'm still confused. I'd find it very helpful if there was an idiots guide.
3 Answers
10 years, 10 months ago.
Hi Rob - I'll work on creating a guide to building the CMSIS-DAP project. In the meanwhile, following these steps should get you what you need.
- Install Keil uVision MDK-ARM
- Clone CMSIS-DAP to your local machine
- Navigate to the uVision project files
- ./interface/mdk/lpc11u35/*.uvproj (NXP targets)
- ./interface/mdk/k20dx128/*.uvproj (Freescale targets)
- Select the project target that represents your hardware
- Compile
hey, on compiling the lpc11u35_bootloader project with µVersion5, i get always 2 errors: in "RTX_Config.c" -> can not open source input file "RTX_lib.c" and in "usb_lib.c" -> can not open source input file "..\..\RL\USB\INC\usb.h" where can i get the files?
regards
posted by 13 Jan 2014Hello Volker Schilling-Kastle,
I have no problems with bootloader project, tested in 4.73 and 5.00 version. Those files are not part of CMSIS-DAP repository, are they?
posted by 14 Jan 2014Looks like you'll also need to install http://www2.keil.com/mdk5/legacy if you have mdk501.exe (and maybe greater)
posted by 14 Jan 2014thanks Sam, One more question still a bit confused how does the project that creates the flash algorithm fit into this process because i thought the two were combined to create the final binary?
posted by 14 Jan 2014wrote:
how does the project that creates the flash algorithm fit into this process
It doesn't. That is only applicable when you are porting to a new target.
wrote:
i thought the two were combined to create the final binary
The final binary is created from the uVision project. Just make sure you choose the right project target, in your case, lpc11u35_lpc1768_if
posted by 14 Jan 2014Hi Sam,
I've just cloned the CMSIS-DAP repository to my PC went to compile and encountered the following error
target_reset.c: Error: #5: cannot open source input file "..\..\target\hal\DBG_NXP\DBG_LPC810\target_reset.c": No such file or directory ..\..\target\hal\DBG_NXP\DBG_LPC810\target_reset.c: 0 warnings, 1 error ".\Obj\lpc11u35_lpc812_if_mbed.axf" - 1 Error(s), 4 Warning(s).
I did a quick check and it would appear that the path no longer exsist, does the project properties need to updated?
posted by 15 Jan 2014Looks like a folder naming conflict. https://github.com/mbedmicro/CMSIS-DAP/tree/master/interface/target/hal/DBG_NXP/DBG_LPC812
posted by 15 Jan 2014Is this project with in the size restrictions of the evaluation version of Keil uVision MDK-ARM?
posted by 17 Jan 2014thanks @Martin Kojtal now, the next error is there.. from the LPC_IAP Project - FlashPrg.c: error: C3903U: Argument '/ropi/rwpi' not permitted for option 'apcs'. Keil Forum means, that this error is available in eval-version of µVision.. but 1300€ for the full version is to much for me :) any suggestions what i make wrong? the same at V4.XX and V5.XX
thanks!
posted by 30 Jan 201410 years, 10 months ago.
I have TWO questions,
1: is it possible to re-map the pins, LED's and the SWD pins, I guess the former would be quite simple. not sure if latter - but would be nice.
2: Is it possible to get the code into the '401' version, with 10K memory, as opposed to the '501' with 12K.
Cheers
Ceri
10 years, 10 months ago.
Hi Ceri,
You can do that.
I have tried to use Arch as a CMSIS DAP board. Arch uses LPC11U24 and has only 8K RAM. It works by remove dynamically generating MBED.HTM file, reducing some threads' stack size and optimizing code for size. The source code is on https://github.com/xiongyihui/CMSIS-DAP/tree/lpc11u24.
Can you be a bit more specific on how to remove the MBED.htm file? Do I need to change the code? Does your linked source code have all the required changes? I'm trying to use a '401' LPC11U35 to interface with a LPC1768
posted by 27 Jun 2014Hi Jason,
To use a '401' LPC11U35 which doesn't have 2K RAM at 0x20000000, the line ( https://github.com/mbedmicro/CMSIS-DAP/blob/master/interface/interface/hal/TARGET_NXP/TARGET_LPC11U35/usb_buf.h#L22 ) must be changed to
uint32_t usb_buffer[FLASH_SECTOR_SIZE/4];
With the changed line, it may work. If not, have a look at https://github.com/xiongyihui/CMSIS-DAP/tree/lpc11u24
posted by 01 Jul 2014When I try that change, I get a bunch of errors:
"": Error: L6406E: No space in execution regions with .ANY selector matching rt_task.o(.bss). "": Error: L6406E: No space in execution regions with .ANY selector matching usbd_core.o(.data). "": Error: L6406E: No space in execution regions with .ANY selector matching usbd_msc.o(.bss). "": Error: L6406E: No space in execution regions with .ANY selector matching read_uid.o(.bss). "": Error: L6406E: No space in execution regions with .ANY selector matching usbd_hid.o(.data). "": Error: L6406E: No space in execution regions with .ANY selector matching usbd_user_hid.o(.data). "": Error: L6406E: No space in execution regions with .ANY selector matching dap.o(.bss). "": Error: L6406E: No space in execution regions with .ANY selector matching main.o(.data). "": Error: L6406E: No space in execution regions with .ANY selector matching usb_config.o(.data). "": Error: L6406E: No space in execution regions with .ANY selector matching version.o(.data). "": Error: L6406E: No space in execution regions with .ANY selector matching board.o(.data). "": Error: L6406E: No space in execution regions with .ANY selector matching usbd_user_cdc_acm.o(.data). "": Error: L6406E: No space in execution regions with .ANY selector matching uart.o(.data). "": Error: L6406E: No space in execution regions with .ANY selector matching swd_host.o(.data). "": Error: L6406E: No space in execution regions with .ANY selector matching serial.o(.data). "": Error: L6406E: No space in execution regions with .ANY selector matching gpio.o(.data). "": Error: L6406E: No space in execution regions with .ANY selector matching rt_robin.o(.data). "": Error: L6406E: No space in execution regions with .ANY selector matching rt_task.o(.data). "": Error: L6406E: No space in execution regions with .ANY selector matching rt_timer.o(.data). "": Error: L6406E: No space in execution regions with .ANY selector matching rt_system.o(.data). "": Error: L6406E: No space in execution regions with .ANY selector matching rtx_config.o(.data). "": Error: L6406E: No space in execution regions with .ANY selector matching read_uid.o(.data). "": Error: L6406E: No space in execution regions with .ANY selector matching usbd_lpc11uxx.o(.data). "": Error: L6406E: No space in execution regions with .ANY selector matching rt_time.o(.data). "": Error: L6406E: No space in execution regions with .ANY selector matching dap.o(.data). "": Error: L6407E: Sections of aggregate size 0x1c4 bytes could not fit into .ANY selector(s).
"" = '.\Obj\lpc11u35_lpc1768\lpc11u35_lpc1768_if.axf'
For the LPC11u24 project you link, will that work for a LPC1768 as a target, or just a LPC812?
posted by 02 Jul 2014
If you be more specific, somebody can update hdk page or just plainly explain here. Are you referring to CMSIS-DAP?
What's your interface you want to build? What's your target?
posted by Martin Kojtal 09 Jan 2014Sorry yep should have explained more. I've built my own hardware using the hdk. Interface is an lpc11u35 target mcu is lpc1768. Ive been using a prebuilt CMSIS-DAP binary. Now I'd like to try and build my own binary.
posted by Rob Cawsey 09 Jan 2014