any bare metal example project for second A7 processor on imx7?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

any bare metal example project for second A7 processor on imx7?

2,640 Views
erickrieg
Contributor I

The power of the imx6 and imx7 is having two A5 or A7 processors.  But it is my understanding that only one of them can run Linux.   Does anyone know of an example project to allow the second processor to run bare metal? ArmKeil has imx7 example projects for the M4 or for linux on the first A7 processor, but nothing yet found to allow a simple non-linux build on the second processor

Labels (2)
0 Kudos
6 Replies

1,436 Views
erickrieg
Contributor I

ok, here is the trick to get it to work:   go to program files->DS5->examples - expand all the zip files (or you can expand them to a development area).  Then start DS5, create a work space.  click file->import     select general->existing project  then go to browse and point it to where you expanded the zip file - from there you will now have a list of tons of example projects - including in my case, one for bare metal Cortex A7.   I then went into the configuration of the debugger to select the NXP->imx7->dual->A7_1.   Note, before you load the code right after you power up, you need to hit space on a com port window to stop the A7_0 core from screwing up your ability to download it all.   That got me to the point of building the project  - but as of this moment, I get the following error after downloading my code before being able to execute it:

Connected to stopped target NXP - i.MX7 Dual on TCP:localhost
cd "C:\Development\bareMetalExamples"
Working directory "C:\Development\bareMetalExamples"
loadfile "C:\Development\DS-5Examples\startup_Cortex-A7\startup_Cortex-A7.axf"
ERROR(CMD16-TAD274-NAL87):
! Failed to load "startup_Cortex-A7.axf"
! Failed to write 7,188 bytes to address N:0x80000000 while writing block of 4,096 bytes to address N:0x80000000
! Debug system is not powered.
set debug-from *$ENTRYPOINT
start
WARNING(CMD399-CMD38-CMD722):
! Failed to start the target
! The string "$ENTRYPOINT" cannot be interpreted as a positive int
! Entry point not set
WARNING(CMD407): Trying the entry point instead
ERROR(CMD426): Cannot find symbol to start or entrypoint, the file or load commands may be used to set the entrypoint
wait

-  I will post a solution below after I figure out how to get around that project    - Eric

0 Kudos

1,436 Views
igorpadykov
NXP Employee
NXP Employee

Hi eric

regarding i.MX7 baremetal examples only FreeRTOS is available:
Board Support Packages (3)
FreeRTOS_iMX7D_1.0.1_LINUX(REV 1.0.1)
http://www.nxp.com/products/microcontrollers-and-processors/arm-processors/i.mx-applications-process...

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

1,436 Views
erickrieg
Contributor I

Igor,

Thanks so much for getting back to me. Could you please tell me which

of the 46 links on that page are most likely to help me get a bare metal

project built and downloaded for the second A7 core on a Colibri board

using a ulinkproD jtag interface? I believe that our first A7 core running

linux would use resources that would prevent the second core from also

running linux. Our second core would be nice to have just freeRtos on it -

but I don't really need an RTOS. I have several different of the ARMkeil

evaluation tools loaded, but am happy to buy any IDE that just lets me

build a bare metal hello world that downloads and runs.

thanks,

Eric

On Sun, Apr 2, 2017 at 11:00 PM, igorpadykov <admin@community.nxp.com>

0 Kudos

1,436 Views
igorpadykov
NXP Employee
NXP Employee
0 Kudos

1,436 Views
erickrieg
Contributor I

Igor,

in case it can help you help others, I posted the solution I found to my

being unable to find an A7 bare metal example piece of code:

https://community.nxp.com/thread/448268

at the moment, I'm trying to find out why that project works on the first

A7 core and not on the second - but I should be able to find a solution to

that problem.

Eric

0 Kudos

1,436 Views
erickrieg
Contributor I

Igor,

Thanks for getting back to me so quickly. There was a lot of great stuff

in that link - but it is for freeRtos for the M4 processor - not the A7

processor I want to use. In the

FreeRtos_BSP_101_iMX_7Dual_Release_Notes.pdf file in the docs directory of

the gz file you linked to: on page 6, it says "The FreeRtos BSP is intended

for use with the I.MX product family on the ARM Cortex-M4 . . . . ARM

Cortex-A7 core is not supported". There were a lot of good example

projects, but they were all for the M4 core and sometimes gave warnings

were code on an A7 core could interfere. I would like to use the second A7

core running bare metal code for my project (at the same time, the M4 core

and the other A7 core would be doing other jobs)

thanks in advance for any other help,

Eric Krieg

0 Kudos