LPC11XX uvision export template

225 views
Skip to first unread message

Joris

unread,
Sep 12, 2013, 8:41:07 PM9/12/13
to mbed-...@googlegroups.com
For some reason the LPC11XX uvision export template has the microlib option enabled which apparently breaks the build with the following errors:

.\build\MBED_A5.axf: Error: L6218E: Undefined symbol __initial_sp (referred from entry2.o).
.\build\MBED_A5.axf: Error: L6218E: Undefined symbol __heap_base (referred from malloc.o).
.\build\MBED_A5.axf: Error: L6218E: Undefined symbol __heap_limit (referred from malloc.o).
".\build\MBED_A5.axf" - 3 Errors, 0 Warning(s).
Target not created

Microlib is not enabled for the LPC11C24. Is there any reason why I should not disable it in the template?

I was also planning on setting the listing and build path to .\build\ instead of .\ and to change the OutputName to {{name}} (to match the other templates).

Would it also be an idea to change the default debug configuration to CMSIS-DAP or JLINK to make it work with the LPC-Link2?

Could we also group the source_files in project and library? Something like:

      <Groups>
        <Group>
          <GroupName>mbed</GroupName>
          <Files>
            {% for file in library_files %}
            <File>
              <FileName>{{file.name}}</FileName>
              <FileType>{{file.type}}</FileType>
              <FilePath>{{file.path}}</FilePath>
              {%if file.type == "1" %}
              <FileOption>
                  <FileArmAds>
                    <Cads>
                      <VariousControls>
                        <MiscControls>--c99</MiscControls>
                      </VariousControls>
                    </Cads>
                  </FileArmAds>
              </FileOption>
              {% endif %}
            </File>
            {% endfor %}
          </Files>
        </Group>

        <Group>
          <GroupName>src</GroupName>
          <Files>
            {% for file in source_files %}
            <File>
              <FileName>{{file.name}}</FileName>
              <FileType>{{file.type}}</FileType>
              <FilePath>{{file.path}}</FilePath>
              {%if file.type == "1" %}
              <FileOption>
                  <FileArmAds>
                    <Cads>
                      <VariousControls>
                        <MiscControls>--c99</MiscControls>
                      </VariousControls>
                    </Cads>
                  </FileArmAds>
              </FileOption>
              {% endif %}
            </File>
            {% endfor %}
          </Files>
        </Group>
      </Groups>

Emilio Monti

unread,
Sep 16, 2013, 12:32:21 PM9/16/13
to mbed-...@googlegroups.com
Hi Joris,


> For some reason the LPC11XX uvision export template has the microlib option
> enabled which apparently breaks the build with the following errors:
> Microlib is not enabled for the LPC11C24. Is there any reason why I should
> not disable it in the template?

In the mbed.org build system, for the most memory constrained platforms (LPC11C24, LPC812, ...), we are using microlib instead of the ARM C standard library.
The correspondent "mbed library" used in the online build system is compiled against microlib, instead of the ARM C standard library.

Back in 2011 when we started using microlib, there was no C++ support.
I added C++ support in microlib and I made a custom build of it.
Since then, the mbed.org online compiler has always used my patched microlib library that is not of public domain and certainly does not ship with the Keil MDK.

In the mean time we collaborated with the ARM compiler team to get my changes in the official microlib. This new official microlib has been released in ARMCC 5.03, that is now used by the Keil MDK 4.7 onwards. At the moment, there are small incompatibilities between my 2011 patched microlib used by the online compiler and the new official microlib.

In the following weeks we are planning to update the online compiler to ARMCC 5.03 and to release a new build of the mbed library using this toolchain.
This will allow to successfully export a project using microlib from the online compiler, to the Keil MDK.

This is the reason why you should not disable microlib from the LPC11XX uvision export template.


> I was also planning on setting the listing and build path to .\build\ instead
> of .\ and to change the OutputName to {{name}} (to match the other templates).
> Would it also be an idea to change the default debug configuration to CMSIS-DAP
> or JLINK to make it work with the LPC-Link2?
> Could we also group the source_files in project and library?

Yes, they all sound like good ideas.

Cheers,
Emilio

Joris

unread,
Sep 16, 2013, 12:44:51 PM9/16/13
to mbed-...@googlegroups.com
Thanks for the elaborate reply!
For now I'll use the non-micro libraries locally and I will wait with committing any changes to the templates until the offline toolchain is updated for ARMCC 5.03
Reply all
Reply to author
Forward
0 new messages