Other Parts Discussed in Thread: AMIC110, SYSBIOS
Tool/software: TI-RTOS
Hello,
Can someone explain to me everything about the MMU and bare metal access?
Just kidding.
Can someone point me to some doc? Or some instruction? I have the 5,000 page AM335x spruh73, as well as the ARM ref manual, various books... But I am failing on getting bare metal access when using Sys/Bios. I am using a BBB on CCS 7.2, with and without TI-RTOS
When it tries to access register 44e0 xxxx it appears to give me a data bus interrupt.
Here's the issue:
Using older StarterWare, there are calls that initialize and enable the GPIO ports. Specifically, GPIO1. I can see all the code that is run from reset until it gets into "main()", so I can see what is being done "under the covers" prior to attempting to access the GPIO port. Everything works great.
When I try to bring that same statement into a Sys/Bios project, it crashes.
    HWREG(SOC_CM_PER_REGS + CM_PER_GPIO1_CLKCTRL) |=
          CM_PER_GPIO1_CLKCTRL_MODULEMODE_ENABLE;
In both cases, it is the first thing being executed in "main()". I wrote it there to debug it.
So, clearly and logically, Sys/Bios is doing something (or not doing something) that results in the instruction generating a databus error interrupt (at least, that's that appears to be happening). And it must be doing (or not doing) whatever that is inside the entry point "_c_int00".. And I can see nothing significant in the StarterWare startup code that could affect have an affect on tghe direct register access.
I have no idea what Sys/Bios is doing under the covers before we even get to "main()" but what ever it is, I'm guessing I have to "undo" it. And I 'm also guessing it has something to do with the memory management unit (CP15).
So I am asking... What is a good tutorial/intro to the memory system, the virtual memory, the access controls to memory? I have already been through a lot of the "ARM Architecture Reference Manual" (from the ARM group) and through a lot of "AM335x and AMIC110 Sitara™ Processors Technical Reference Manual" (SPRUH73). So either there is a specific chapter I missed and need to study, or there perhaps is additional information somewhere?
I already did a search on TI E2E, and everything I found is 3-6 years old, which means it's useless for the current environment.
-CSW
 
				 
		 
					 
                           
				 
				