Arm Community
Site
Search
User
Site
Search
User
Groups
Education Hub
Distinguished Ambassadors
Open Source Software and Platforms
Research Collaboration and Enablement
Forums
AI and ML forum
Architectures and Processors forum
Arm Development Platforms forum
Arm Development Studio forum
Arm Virtual Hardware forum
Automotive forum
Compilers and Libraries forum
Graphics, Gaming, and VR forum
High Performance Computing (HPC) forum
Infrastructure Solutions forum
Internet of Things (IoT) forum
Keil forum
Morello forum
Operating Systems forum
SoC Design and Simulation forum
SystemReady Forum
Blogs
AI and ML blog
Announcements
Architectures and Processors blog
Automotive blog
Graphics, Gaming, and VR blog
High Performance Computing (HPC) blog
Infrastructure Solutions blog
Internet of Things (IoT) blog
Operating Systems blog
SoC Design and Simulation blog
Tools, Software and IDEs blog
Support
Arm Support Services
Documentation
Downloads
Training
Arm Approved program
Arm Design Reviews
Community Help
More
Cancel
Support forums
SoC Design and Simulation forum
Basics: C programming for ARM - AHB transfers
Jump...
Cancel
State
Not Answered
Locked
Locked
Replies
6 replies
Subscribers
88 subscribers
Views
10181 views
Users
0 members are here
AMBA
Bus Architecture
AHB
Options
Share
More actions
Cancel
Related
How was your experience today?
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion
Basics: C programming for ARM - AHB transfers
joewu joewu
over 11 years ago
Note: This was originally posted on 18th September 2007 at
http://forums.arm.com
Hello,
Would someone please help me about the next basic things?
I have programed microcontrollers in the past but now I need to work with ARM processors and need some basic pieces to connect the puzzle.
I wil write a C/C++ code for ARM966 but I don't know what to do in the code to communicate to an AHB peripheral. It should be memory mapped but I don't know at what location and if I need to do the memory initalisation at the start of the code or I can read it from somewhere - I have not been able so far to find a clear document about that.
Also, I expect that is enough for me to write to that location in the memory and to read from it and the compiler 'armcc' will take care of generating AHB transaction data that will go to ARM AHB interface ports. I am right or there are specific C functions for AHB transfers in both directions?
I expect to have a library of the C functions that I can use in the code but also somehow I couldn't find the place where it is explained.
I have been digging over RealView 3.0 (Unix) directories in the search for that and I see several header files (like rt_heap.h, rt_memory.h and so on) but I don't have any single C project example where I can see their usage.
I would really apreciate if someone can give me some examples or point me to a location where I can read about that.
The same questions go for the tightly coupled memory (TCM) - where is it in the memory map and so on.
Any help is appreciated.
Thank you very much,
joewu
Parents
0
joewu joewu
over 11 years ago
Note: This was originally posted on 19th September 2007 at
http://forums.arm.com
Thank you again, it is nice of you to try to help me with this.
I understand what you are saying but still don't see when the memory map is configured and who decides at what location AHB peripheral will be mapped and how I can know that now in the early development phases. Do I have to do it in some initialization stage afterward and how? Is there C API for that (not SystemC, just C or C++)?
Then, let's say I found somehow that location and have written something to it. Now I want to read the answer from that particular peripheral. I would expect to have a separate address for AHB HRDATA[31:0] bus - is my assumption correct here or it is also taken care of automatically?
These are all the simple basic questions and I beleive after a little example it would all click in place for me.
It seems to me I also need to spend some time in adding and configuring an AHB peripheral but it is very distant in the flow and I need to do some programming now.
Many thanks...
Cancel
Up
0
Down
Cancel
Reply
0
joewu joewu
over 11 years ago
Note: This was originally posted on 19th September 2007 at
http://forums.arm.com
Thank you again, it is nice of you to try to help me with this.
I understand what you are saying but still don't see when the memory map is configured and who decides at what location AHB peripheral will be mapped and how I can know that now in the early development phases. Do I have to do it in some initialization stage afterward and how? Is there C API for that (not SystemC, just C or C++)?
Then, let's say I found somehow that location and have written something to it. Now I want to read the answer from that particular peripheral. I would expect to have a separate address for AHB HRDATA[31:0] bus - is my assumption correct here or it is also taken care of automatically?
These are all the simple basic questions and I beleive after a little example it would all click in place for me.
It seems to me I also need to spend some time in adding and configuring an AHB peripheral but it is very distant in the flow and I need to do some programming now.
Many thanks...
Cancel
Up
0
Down
Cancel
Children
No data