Book for Understanding the Minutia?

Recently, I was trying to get u-boot to connect to our NAND chip, copying the init and reader code directly from the board maker's diagnosis app. No connection.

After various tinkering about, I came to try and add in the nand init code, but to modify the port init code to match that of the diagnosis app--and it worked.

While I get the idea of raising and lowering certain bits on a port register to send commands I, for instance, haven't the foggiest what the differences are between an UP, DAT, and CON register, nor what relationship those would have to each other such that if one is set wrong, the other doesn't work. I would assume that the technical documents released by the architecture manufacturer has sufficient information that one could figure this out--but I have no idea where one attains such knowledge (as a programmer) so that you can look at the stuff written by the hardware guys and translate that into functioning code.

I fear that this has mostly occurred by osmosis for most people, or transferring from hardware to software somewhere through your career. But before assuming that, just thought I would ask if there does happen to be a book somewhere about that describes how to look at all of the various charts and tables in the technical documentation and know what that looks like from a programming standpoint.

Thank you, Chris Williams

Reply to
Chris Williams
Loading thread data ...

in

No no, just providing background on why I'm here looking for books. I just needed to replace the port init code with some from the maker. Just bothers me that I had to do this without having the knowledge to be able to figure out what the difference was between the various masks.

what

Ah. Had thought that this trio of registers might be common for IO ports. Ah well.

knowledge

cover

Yeah, this is what I am looking for. I am just hoping to be able to find one that approaches things from a "hardware schematics for non-hardware guys" point of view.

notes

design,

Yep, have all that. And I can piece together bits by connecting my (basic) knowledge of generic x86 assembly programming and matching up macro's names and define values to those in the reference material--but the reference material will say something like "0: The pull-up function attached to the corresponding port is enabled."* but never explain what a pull-up function is--so I assumed that this was something generic to port IO. But since I have no idea what is and what isn't generic, at this moment I don't know when I encounter something unexplained whether I need to go looking up ports, or to track down people knowledgeable of the board to ask (which I can't do easily in my current position.)

So if anyone out there does know a good book on embedded programming and dealing with schematics, I'd be very gratious.

-Chris

  • Well actually, this line is from Samsung's S3C2410 reference. We have darn near to squat material on the board we are building for except this bit. But that's a different issue.
Reply to
Chris Williams

Back up a little. I have no idea what a u-boot is or what init and reader code are or who the board maker is or what the board is supposed to do. For specific systems, as you seem to be dealing with, the vendor is the first place to go, since they should be familiar with the equipment. Often you can talk to someone directly. Sometimes email questions work well. Larger vendors often have forums for discussion among the users and technical staff. Microchip is a good example of this.

If you have tried the vendor and can't get any help, go ahead and ask here, but you will need to provide a lot more information than shown in your post.

Nor do I, but there should be some technical documentation somewhere that describes this. Check the vendor's web site for such supporting information. It might be titled a User's Manual, Technical Reference, Data Sheet, Programmer's Reference, etc.

Hmmm, the most important issue is usually to determine how to address various registers in a device by your code. You will, in general, need to be able to read a schematic to understand such things as address decoding and chip select. If the device uses an interface supported by a hardware peripheral, such as a UART, SPI, I2C, etc., you need to read the processor description of the peripheral to know how to set up and use the peripheral on the processor before you can do anything with an external component.

There are introductory books on embedded systems development that cover a lot of these issues (sorry, I don't know one to recommend). Another valuable resource, which is free, is the collection of application notes for your processor and for your peripherals. There are some good app notes that include a schematic, parts lists, explanation of the design, and processor code. See if you can find an app note that is close to you application and set of components.

Thad

Reply to
Thad Smith

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.