Trouble with addr_abort exception on arm/imx7 BSP with simple RTEMS code

Stefan Akatyschew stefan.aka at posteo.de
Tue Feb 2 17:02:41 UTC 2021


Hey together!

I'm new to RTEMS and just hit some errors, I just can't figure out. 
Since I will probably lure around a bit longer, I wanted to give short 
introduction, so you can estimate what to expect from me: I'm a 
nearly-finished(tm) EE undergrad from Germany, not having any hands-on 
experience on RTOS, my embedded knowledge is confined to some hobby 
STM32/PIC projects and the usual microcontroller stuff they teach at 
uni. Not a great starting point for something as advanced as RTEMS, I'm 
aware, but I'm eager to learn it. Besides embedded stuff I'm also into 
the RF electronics :)
Goal of my engagement with RTEMS: Setting up a small SMP Demo 
Application on the Phytec Zeta i.MX7d Board 
https://www.phytec.eu/product-eu/single-board-computer/phyboard-zeta/ 
for a university project, though after getting to know RTEMS, I hope to 
be able to stick around after that, the applications in (aero)space, are 
exactly what I'm passionate about! Also I hope after I get to run 
everything, I can compile and publish my documentation/experience to 
help others with the i.MX 7, since the road has been rather rocky for me 
now.


So to my actual problem: I have the before mentioned i.MX 7d Board and a 
Lauterbach Power Debug Interface with trace32, to directly flash my 
binaries onto the SRAM. I'm using their i.MX7d SABRE configuration file, 
which successfully worked with their sample binary and slightly modified 
it (mainly deactivating ETF on-chip tracing).

I've built the RTEMS 5 toolchain according to your quick-start guide ( 
https://docs.rtems.org/branches/master/user/start/index.html), with some 
slight modifications arm/imx7 on my Ubuntu 18.04 VM (kernel built from 
sources, somehow didn't work otherwise). I also built the simplest demo 
application from 2.7, which went without problems (well, after many 
hours of troubleshooting stupid mistakes). Now after flashing the binary 
directly to the SRAM with my Lauterbach Debugger (without RTEMS OS 
Awareness yet), I end up in the exception routine 
"_ARMV4_Exception_data_abort_default", with the following 
call-tree-hierarchy:

I also tried removing the printf (just letting it count an integer up 
and overflow), since I was confused why RTEMS would call a uart_write 
function otherwise, but that didn't change anything and actually doesn't 
even get to the Init rtems_task.

I already looked on the internet, the documentation and the mailing-list 
archive for help (not nearly finished reading through the complete 
Classic API Guide and User Manual, that'll take some time). 
Unfortunately I'm also new to the Lauterbach Debugger, which seems to be 
a beast of its own, so I unfortunately can't provide any useful on-chip 
trace data yet. I hope anyone can point me to the, probably rather 
obvious, mistake I'm making, any help is appreciated!


Last but not least, thanks for your awesome work on RTEMS!

Kind regards,
Stefan


Attached some maybe useful outputs:

stefan at rtems-vm:~$ arm-rtems5-gcc --version
arm-rtems5-gcc (GCC) 7.5.0 20191114 (RTEMS 5, RSB 5.1, Newlib 7947581)

./waf configure --rtems=$HOME/rtems/5 --rtems-bsp=arm/imx7
Setting top to                           : 
/home/stefan/VCS/rtems-bp/first-test
Setting out to                           : 
/home/stefan/VCS/rtems-bp/first-test/build
RTEMS Version                            : 5
Architectures                            : arm-rtems5
Board Support Package (BSP)              : arm-rtems5-imx7
Show commands                            : no
Long commands                            : no
Checking for program 'arm-rtems5-gcc'    : 
/home/stefan/rtems/5/bin/arm-rtems5-gcc
Checking for program 'arm-rtems5-g++'    : 
/home/stefan/rtems/5/bin/arm-rtems5-g++
Checking for program 'arm-rtems5-gcc'    : 
/home/stefan/rtems/5/bin/arm-rtems5-gcc
Checking for program 'arm-rtems5-ld'     : 
/home/stefan/rtems/5/bin/arm-rtems5-ld
Checking for program 'arm-rtems5-ar'     : 
/home/stefan/rtems/5/bin/arm-rtems5-ar
Checking for program 'arm-rtems5-nm'     : 
/home/stefan/rtems/5/bin/arm-rtems5-nm
Checking for program 'arm-rtems5-objdump' : 
/home/stefan/rtems/5/bin/arm-rtems5-objdump
Checking for program 'arm-rtems5-objcopy' : 
/home/stefan/rtems/5/bin/arm-rtems5-objcopy
Checking for program 'arm-rtems5-readelf' : 
/home/stefan/rtems/5/bin/arm-rtems5-readelf
Checking for program 'arm-rtems5-strip'   : 
/home/stefan/rtems/5/bin/arm-rtems5-strip
Checking for program 'arm-rtems5-ranlib'  : 
/home/stefan/rtems/5/bin/arm-rtems5-ranlib
Checking for program 'rtems-ld'           : 
/home/stefan/rtems/5/bin/rtems-ld
Checking for program 'rtems-tld'          : 
/home/stefan/rtems/5/bin/rtems-tld
Checking for program 'rtems-syms'         : 
/home/stefan/rtems/5/bin/rtems-syms
Checking for program 'rtems-bin2c'        : 
/home/stefan/rtems/5/bin/rtems-bin2c
Checking for program 'tar'                : /bin/tar
Checking for program 'gcc, cc'            : 
/home/stefan/rtems/5/bin/arm-rtems5-gcc
Checking for program 'ar'                 : 
/home/stefan/rtems/5/bin/arm-rtems5-ar
Checking for program 'g++, c++'           : 
/home/stefan/rtems/5/bin/arm-rtems5-g++
Checking for program 'ar'                 : 
/home/stefan/rtems/5/bin/arm-rtems5-ar
Checking for program 'gas, gcc'           : 
/home/stefan/rtems/5/bin/arm-rtems5-gcc
Checking for program 'ar'                 : 
/home/stefan/rtems/5/bin/arm-rtems5-ar
Checking for c flags '-MMD'               : yes
Checking for cxx flags '-MMD'             : yes
Compiler version (arm-rtems5-gcc)         : 7.5.0 20191114 (RTEMS 5, RSB 
5.1, Newlib 7947581)
Checking for a valid RTEMS BSP installation : yes
Checking for RTEMS_DEBUG                    : no
Checking for RTEMS_MULTIPROCESSING          : no
Checking for RTEMS_NEWLIB                   : yes
Checking for RTEMS_POSIX_API                : yes
Checking for RTEMS_SMP                      : no
Checking for RTEMS_NETWORKING               : yes
'configure' finished successfully (1.056s)

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/users/attachments/20210202/c54e99d0/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: hepibjnolojpbpdg.png
Type: image/png
Size: 18351 bytes
Desc: not available
URL: <http://lists.rtems.org/pipermail/users/attachments/20210202/c54e99d0/attachment-0001.png>


More information about the users mailing list