From: tonofsteel <[email protected]> Reply-To: "[email protected]" <[email protected]> Date: Thursday, July 24, 2014 at 9:31 AM To: "[email protected]" <[email protected]> Subject: [beagleboard] Hardware and Software Integration - Ethernet/LCD Modules To Drivers To Usage In Programs
> Can anyone offer any insight into how this works? > > In general for all embedded dev you typically have hardware (for the sake of > discussion lets say a Ethernet or LCD module), drivers for the specific > hardware, a way to hook it into the OS if you are using one (or a > graphics/windows library) and finally a way to call at a higher level methods > to run the hardware. > > I received a 4D systems display with my beagleboard and it magically works. > If I plug it into the headers on the board and power it on then the display > works. If I disconnect it and use the onboard HDMI connector then magically > the video shows up on my monitor. > > For Ethernet you can have a processor with an on-board MAC and external PHY or > a module that uses SPI/Serial for example. Those are two very different > methods of connecting Ethernet but magically in the demos for development > boards it all works and you use libraries at a much higher level to create > sockets, communicate, handle requests etc. > > While I have been able to find a lot regarding TCP/IP stacks, graphics > libraries, and wiring diagrams for modules I have not been able to find much > that explains this "magic" > > I did find that the board I have has a EEPROM on it that as part of the > BeagleBoard firmware it will question what the cape is and wire up the driver > to the display output (frame buffer?) > > I don't think this is necessarily specific to just the BeagleBone, since in > development you are always trying to mix together > hardware/modules/processors/Operating Systems/Bare Metal code. > > My question is there any good books/documentation/web sites/tutorials that > show in more detail how you take a piece of hardware, a processer and > optionally an operating system and get them working together? But more on the > details of the magic and not hey look here is a LCD, plug it in here and write > this python script and bam you got a picture? My two favorite references are: Linux System Programming: Talking Directly to the Kernel and C Library by Robert Love The Linux Programming Interface: A Linux and UNIX System Programming Handbook by Michael Kerrisk Regards, John > If I had a FPGA that implemented a MAC and had an external PHY and connected > it to the Beaglebone Black or other processor running a TCP/IP stack how would > I go about telling the OS or library this is the physical communication piece > and here is the driver to run it? I know there has to be some "hooks" > somewhere to connect the pieces it is just not clear where they are. > > On a PIC32 dev board I worked with you had to tell it which MAC/PHY driver you > wanted to use by using #defines. It would include the code but I believe it > was all a standard interface that each driver implemented. So the stack would > just call methods/functions at the lowest level and this driver would do the > actual sending/receiving of bits. > > There has to be a book(s) that explain the magic better. Correct me if I am > wrong but the general concept is the same across all types of systems whether > you are using Debian, a RTOS or a stack on bare metal. The higher level > abstracts the hardware/functionality to an interface and you write the code > for this interface so it communicates with whatever specific > hardware/communication protocol you are using? > -- > For more options, visit http://beagleboard.org/discuss > --- > You received this message because you are subscribed to the Google Groups > "BeagleBoard" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. -- For more options, visit http://beagleboard.org/discuss --- You received this message because you are subscribed to the Google Groups "BeagleBoard" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
