AT91SAM7X-EK Evaluation Board [closed] - c

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 8 years ago.
Improve this question
I just recentely started working with a new board: a AT91SAM7X-EK. I would like to get more information about the board's processor (AT91SAM7X256) and the board's flash. So I looked at a pretty detailed data sheet and a summary of the data sheet, but have been unsucessfull (so far) of finding the information I want. I would appreciate if anyone could help me on the following aspects of the board:
How do I connect to the board? Is it through ssh? If so, how is it possible to recuperate the board's IP address. I have an ethernet cable for the connection.
How do I load an application onto the board's flash? For example, I would like to cross compile (using a toolchain I've already installed - arm-none-eabi) a simple hello world program in C to load onto my board. How would I go about doing so?
I would appreciate any help on this issue.

The board is supplied "bare-metal" - no code, no OS. You will not be able to run Linux on an AT91SAM7X-EK - it has insufficient memory resources and rins at 30MHz tops (and has no MMU).
You need a hardware JTAG or DBGU interface device and a tool-chain that will work with it.
You should probably also be looking at the datasheet for the board itself. From the Getting Started section of that:
The AT91SAM7X-EK evaluation board is delivered with a DVD-ROM containing all necessary
information and step-by-step procedures for working with the most common
development tool chains. Please refer to this DVD-ROM, or to the AT91 web site,
http://www.atmel.com/products/AT91/, for the most up-to-date information on getting
started with the evaluation kit.
So start there.

Related

How do I execute a program on a custom circuit board using ARM processor? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 2 years ago.
Improve this question
I'm trying to build a custom board to use LED or LCD screens using one of the ARM processors and PCB( I'm buying separate parts and soldering them on a PCB ).
I wonder how to execute a program on that board.
Do I just write a C program on my PC, compile, and upload the binary file to the board?
Or is there any other necessary program or code to execute a C program on custom ARM board?
I hope someone could show me some directions and examples. I'm lost.
Massively broad question. Yes you need a toolchain that can build programs for the arm processor. Which generally means a cross compiler, good news is that gcc and clang/llvm are free and are capable of the job, but its not that easy. Find a sandbox (someone, like the chip vendor (arm is not the chip vendor they simply made some IP that the chip vendor bought and put in their part), will have a development environment and libraries and examples) and learn from that.
And you need tools in order to get the firmware downloaded into the part. Software and hardware tools.
Start with an eval/dev/hobby board first. They are often $20 or less, there are many in the $10 range, enough to keep you busy for a long time. You can wire up displays to these boards long before it is time to start thinking about making your own PCB.

write a bootloader for atmega328p [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
I have been searching around the web, but didn't find anything useful telling me how to start.
I have an Atmega328p. I think this is the easiest controller to start with for this kind of things.
I would like to write my own bootloader. Where should I start to write code for?
Bootloader is essentially a bare-metal program that is running on your micro, listening to one or more communication interfaces (Serial, SPI, USB or you name it..) with a specific protocol. Then, on the PC/programmer side there is a "client" software that can some binary (but not limited to) and send it using that protocol to the bootloader. Then upon reception the bootloader will store the received data in some known memory location and issue a "jump" (or "branch" or "goto" or whatever) to the start of that data, thus triggering execution of it assuming it is an executable code. So, you bootloader at very minimum should be capable of:
1) Using one of the communication channels
2) Implementing a specific protocol
3) Storing the received executable in some memory
4) Trigger the execution of that code
From here it's you implementation choice.
There is a PDF with an in depth discussion/explanation of the steps to write a bootloader for AVR:
http://www.avrfreaks.net/sites/default/files/bootloader_faq.pdf
This was the third hit in Google from searching "atmega write bootloader"

Read network data from Airport Extreme [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 4 years ago.
Improve this question
I'm making a network manager program as a small project, and I want it to be able to access data on my Airport Extreme (most importantly, the DHCP client list).
There has to be a way of accessing the client list file from the Airport Extreme, after all, Airport Utility can do it. All I want to do is read the data from the file/list.
If anyone could even point me in the right direction, that would be great. I'm also hoping that I can get this program to run on all *nix machines, not just a mac (so any Airport utility hacks wouldn't really help).
You can do this via SNMP. Get hold of an SNMP browser such as GetIF and browse around the Airport via its address to see exactly what's in there, then use an SNMP library to get hold of the same information yourself in your application.
Network management essentially is SNMP. I'm surprised you hadn't come across it already.
I can't leave a comment so I will leave an answer. I don't have a solid answer but I have a few bread crumbs that might be helpful.
see the comment on page 5 — https://discussions.apple.com/thread/5101886?start=60&tstart=0 by user "_r_s_"
Also
1) Open airport utility
2) Double click your airport device from the window or click the device and then click the edit button.
3) Now go to File>Export Configuration File
4) Open the .baseconfig file in your favorite editor
5) Now go to http://aldentech.wnyric.org/webshare/mkempste/AirPort%20Utility%20copy.app/Contents/Resources/English.lproj/AirPortSettings.strings to help you sort out what all the strings mean.
6) Edit your base config file — Use the site below to find out the strings meaning in the .baseconfig file and edit the file to yield the result you are looking for.
7) Import the file back to your airport device and it should give you the features it is capable of.
I am posting these steps because Apple has removed SNMP for Airport Utility but they appear to be in the XML.
If you are willing please leave a link to your project.

Would an ARM Processor be the way to go? [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
I was making a little device that would have three buttons (like the ones at radioshack) and each preform its own action. These buttons and their actions would be controlled by a very small real time operating system that I would put on this device.
Would I need an ARM Processor in any way?
How would I put the real time operating system on the device?
What OS would I have to compile this on (ex. Ubuntu? Mac OS X? Windows 7?)?
Are there any examples of anyone doing this?
P.S. No prebuilt boards (ex. arduino). I would build the board myself.
Any feedback would be greatly appreciated!
Even if you don't want to use a prebuilt board in the finished product, I'd recommend getting a prebuilt board (like the Arduino), build your product, program it, test it, etc. while on the breadboard, and then simply rebuild it however you want, using the same hardware as you've been using.
That helps you out especially the next time you're building something, because you already have the prototype board and the toolchain ready to go.
Compiling your files can be done on any OS.
Enumerated version:
No, and I wouldn't even recommend using an ARM processor; but rather an Atmega328 or similar.
Using a programmer.
Any.
Probably millions, or at least hundreds of thousands of examples, yes.

How should I get started on writing device drivers? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 5 years ago.
Improve this question
I would like to learn how to write device drivers because I think it would be fun. I use a Mac OS X Macbook, but I also have an Ubuntu machine (running on a Mac Min). I am pretty familiar with C and currently am reading this book. I have found some links online such as Mac Dev Center. I am doing this because it would be fun. I think there would be real gratification to see hardware operate because of software I wrote.
I guess what I would like is some tips or advice and guidance, and does anyone know of a list of devices that don't have drivers or can I write a driver for something that's already supported (would prefer the former so I'm actually providing value). What's a good device to get started with? Am I biting off more than I can chew? I'm not afraid of low level programming or assembly or whatever amount of effort is required. I'd like a challenge really!
For Linux, you might look into picking up the O'Reilly Linux Device Drivers book or reading PDFs online. In my opinion, it is one of the better texts around on the subject.
The Linux Kernel Module Programming Guide is another good resource.
You may also want to pick up a book specifically on the Linux Kernel. I picked up a copy of Robert Love's Linux Kernel Development (2nd Edition) for this purpose (3rd Edition on the way).
Writing a device driver can be pretty simple, or it can be almost arbitrarily complicated. For instance, I've been involved in a project where it took six of us almost three years to solve ONE bug in a device driver. Of course, we cleared out dozens of other bugs while looking for it... the code improved immensely. The fix turned out to be an eight line patch, that cost, conservatively, about a million dollars.
But, as a side project to that, I wrote an ethernet driver from the chip data sheet in a week, and took another week to debug it. Haven't needed to touch it since.
There's no way to say in general how much work a driver will be; a GPU driver could cost hundreds of millions, a driver for a single LED costs a couple of hours work at the most.
If you want to go for Linux device driver development, the freely available O'Reilly book Linux Device Drivers, Third Edition is a must read.
In order to find unsupported hardware pieces for which you could write a driver, ask on the Linux mailing lists. Maybe some USB 3.0 device? ;)
For Mac you might want to take a look at Mac OS X Internals book. It's think and heavy but fun to read. It is mostly about PowerPC-based Macs but has an appendix about Intel-based ones. For Linux take a look at Linux Device Drivers, 3rd Edition - it's lighter (free PDFs online :) and is really device driver-oriented, might be a better start.

Resources