Hello,
I am trying to learn how to use the device, not the innermost working of the VSLI design. :-) I am consulting the Reference Manuals, but they are proving to be a challenge.
Please let me give some background, indicating what I know, and what I am trying to learn...
I have been a C/C++ developer for decades in Windows and Linux. I also have experience with small MCUs, 8 and 16bit, mostly in the PIC Microchip line. I am migrating toward working in a project at my employer which is ARM based (short explanation, it's moving knowledge and support inside, off of contractor dependence)
To begin with, I have already been through the first two books by Valvano, and they were very helpful. I am using the TI CCS environment and their TM4C boards. However, the goal is the ARM V7 device by TI (Sitara AM335x), so I moved up to a BeagleBone board.
I have already done plenty of sample, simple programs accessing ports, registers, etc. But the ultimate project is using TI RTOS. However, support from their community if horrible (in my experience, over the past 10 months).
Suddenly, trying to use the RTOS, accessing a port gives me a databus fault. TI's position is use their libs... except they don't have samples and libs for what I need. (they pushed something that was not complete or comprehensive... how nice of them)
I am NOT expecting anyone here to support that suite of software. I just explain it to show the roadblock I encountered and how I am trying to learn from it.
I have been able to narrow down to that fact that my earlier samples didn't use the MMU, but the TI RTOS appears to be enabling it. I can just turn it back off, but there are tables that can be set to control memory access, and that appears to be what is going on. I am trying to understand the way the device itself works. I always try to learn from these types of roadblocks. And I don't have their source to use as tutorial or figure out what is being done.
So I have been going through the ARMV7 Architecture Ref manual (ARM - ARM), and finding it amazingly difficult. Many things are referenced in one place, only to be defined many pages later. It is almost like I have to read the document backwards. I have seen this in the way the document mentions the power of secure mode, privilege levels, virtual memory with access control, etc...
So, that said, I am looking for material that can "teach" the specifics of programming the ARMv7, as I already have learned the basic materials for ARM in general from Valvano's books for the Cortex-M TM4C devices .
Valvano's books do not deal with the alternate CPSR or other banked registers. Nor does the device he uses have the features of the A8 device anyway. For example, I was able to learn the register banking concept from the Cortex-A8 TRM document. But the rest is proving to be quite challenging without materials that are designed as educational introduction materials (starting small and building on it, with sample assembly code).
I do see there are videos, and I would be willing to use them. But I I would first want to know which ones would give me the value in what I am trying to learn, so as to not spend the money or time covering material I already know.
Thank you for any advice.
-Scott
hello,
I totally disagree that TI manuals are horrible.
Did you try training.ti.com? They have workshop series on TI- RTOS as well as on M4, maybe more....
BTW - I am not TI employee.
I've been through the web site, all over it, many times, including all the Eric Wilbur videos and MindShare labs. His material is very good, but doesn't go into the detail level I was looking for in Armv7 (Sitara). I started out with this material on Tiva.
None of it details the MMU, the operating modes, the banked registers, etc. I got that from ARM docs here on "Arm.com"
I've also been through pages and pages of things, only to discover "Opps... that doesn't apply to the newer versions of [ BIOS, RTOS, NDK, PDK, TivaWare, etc...] "
They are pushing stuff out so fast, and it's untested. I've got headers that are loaded with syntax errors and won't even compile!
Just trying to follow the instructions to install and build the Am335x PDK doesn't work. I asked, and an "e2e" reply I got was "Yes, just ignore that and use the prebuilt libs".
If there are other and better "instruction manuals" I haven't ever seen them. I'm referring to the Tech Ref manuals that almost should be read backwards... There are places they document some operation being based on setting "X", but there is nothing that defines "X" until about 200 pages later.
If this is "normal" than I'm just not used to "TI normal". All the ref manuals I've read from other suppliers are not organized that way.
Anyway, the level of detail I'm needing to learn is better learned from the ARM docs, not from the TI docs.
Thanks.
I would recommend ARM M3/M4 book by Joseph Yiu. author is ARM designer and his books are highly recommended.
good luck and have fun!