Coder Social home page Coder Social logo

Comments (2)

RonanSynnottArm avatar RonanSynnottArm commented on July 20, 2024

Hello, I think I replicated the issue.

I changed the example to use the hello world example here:
https://www.programiz.com/cpp-programming/examples/print-sentence

At link time I see errors that execution regions exceed limits. These are defined in the scatter file. Changing the size of the region, for example:

ROM_EXEC +0 0x100000
...
RAM_EXEC +0 0x20000

Allows the link to complete.

If this is not your issue, please can you share the errors you are seeing.

from arm-learning-paths.

RonanSynnottArm avatar RonanSynnottArm commented on July 20, 2024

Hi again, working this through, I think the issue you saw were link errors of the form:

Error: L6200E: Symbol fputc multiply defined (by fputc.o and uart.o).
Error: L6200E: Symbol __stdout multiply defined (by stdio_streams.o and uart.o).

These are caused by library objects being linked in for other symbols, which result in symbols being multiply defined.

Adding --verbose to the linker command line shows why this happens, for example:

Loading member stdio_streams.o from c_ou.l.
reference : _initio
reference : _terminateio
definition: __stdin
definition: __stdout
definition: __stderr
definition: __aeabi_stdin
definition: __aeabi_stdout
definition: __aeabi_stderr

Defining these symbols prevents stdio_stream.o being used.

I've not fully worked through all the symbols that need to be retargeted, but you would need to retarget all such symbols.

I hope the below documentation helps:
https://developer.arm.com/documentation/100073/0621/The-Arm-C-and-C---Libraries/Target-dependencies-on-low-level-functions-in-the-C-and-C---libraries

from arm-learning-paths.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.