Quantcast
Channel: Forums - Recent Threads
Viewing all articles
Browse latest Browse all 262198

SYSBIOS: Illegal priority call to llEnter()

$
0
0

Part Number: SYSBIOS

Hello I am having issues with my software.

What I am trying to accomplish is add support for normal Ethernet via tthe AM335x build in PRUs (I already have Ethernet via CPSW running correctly). We have a board that has 2 fiber optics PHYs connected to the PRU MII interface. So I have taken the application that we have already running on our own board and started to add code from the TI example project (NIMU_ICSS_BasicExample_icev2AM335x_wSoCLib_armExampleproject) to my code. While adding the code, I can see that sometimes I get into a situation where I get the following on the debug output in CCS:

00000.500 llEnter: Illegal priority call to llEnter()

00000.506 llExit: Illegal call to llExit()

This does not seem to be related to things that I do in the code, there is some outside trigger causing this to happen and I don't know what it is.

What I have done to check that it is probably no my code that causes it, is the following:

  • From a point where I once again got the above message, I reverted back to the state of the software where I did not have this problem and nothing related to PRUs in my code
  • I ensured that my code was still running correctly and not giving me that message by cleaning the project, building it and running it on my target. Everything was working as it should work.
  • Then I started slowly adding code in 'baby steps'. After every step, I cleaned the project, then build it again and loaded it onto the target via the CCS environment. When loaded, I started the application and check that A) I did not get the message about priority and B) The software was still working correctly.
  • I kept on doing these 'baby steps' until I got to the point that nearly everyting was in my code. The only things missing were loading the PRUs with firmware (PRUICSS_pruWriteMemory) and enabling the PRUs again (PRUICSS_pruEnable)..
    Reaching this point still did not give me the 'Illegal priority' error message, 2 other things were broken though (my CPSW Ethernet interface no longer established a connection to my PC and I could no longer open the UART that we have connected to an RS-485 driver). This is something to look at later on, but not my issue for now.
  • At this point I turned off my board for a complete reset and then turned it on again. Next I started my 'Target configuration' again to connect to the board and then loaded the software (without any compiling/rebuilding -> so same binary) into the board again. However running the software now resulted in the above mentioned error message about 'Illegal priority'. And now I am unable to the software running again, rebuilding the software or restarting the hardware does not help.
  • From this point I will change back my code back to the starting position again, to find out when it will run again, but this is a time consuming process and I know that the 'illegal priority' error will pop-up again when I add PRU functionality.

So I have some questions:

  1. How is it possible that I get this error message ? Because it has nothing to do with any priority of any of my own tasks.
  2. Is it possible that the reset triggers something which caused my problem ? Or the better question might me, is it possible that my incremental building back up my software can somehow prevent this error from occuring, because there is something left behind in memroy ? And the hardware reset will ofcourse clear out the entire memory, so no settings are left behind.
  3. What can I do to prevent this issue ? Because what I have read about this error message is that it is caused by creating/running a task with a priority higher than allowed by the configuration in the .cfg file and since it is not one of my tasks, it is hard for me to change task priorities, as the tasks must be in the TI PDK.
    FYI, I have not set the maximum task priority level in my .cfg file, so it is at its default level.

My configuration is the following:

  • Code Composer Studio: Version: 8.2.0.00007
  • TI library versions:
    • EDMA3 low level driver 2.12.5
    • NDK 3.40.1.01
    • SYSBIOS 6.73.0.12
    • System Analyzer 2.30.1.02
    • am335x PDK 1.0.12
  • XDCtools version 3.50.7.20_core
  • Compiler: gcc-arm-none-eabi-6-2017-q1-update
  • Our board contains
    • an AM3356
    • DDR3 RAM
    • Flash for the bootloader
    • an SD-Card that normally contains the application, but it is now loaded by CCS
  • I am using an XDS200 debugger to interface with the hardware from CCS

Is there anyone that can help me resolve this ?

Kind regards,

   Han Hoekstra


Viewing all articles
Browse latest Browse all 262198

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>