I consider myself an interface between the hardware and software departments so I have most definitely read a datasheet and it is a common activity in my day. Really appreciate this course, thanks Mike.
Thanks for a very interesting session, Michael. I'm following this even though 2pm EST is 8pm my time and I'm on vacationand I'm not working with Linux, just a hobby since 96... Great work, Michael.
@adse Linus believes that source debuggers are a crutch for the weak. ;-) His thought, as I interpreted it, is that if you don't know what to look for (so you could capture it in a printk), then you probably don't know enough about device drviers and the kernel to be effective as a developer in that space. Of course, printk's can increase latency in the kernel, that's why /proc or /sys is interesting. Only give the the info when I want it rather than any time the driver runs.
@luizcosta I've not seen a video course. PTR has discussed doing a video course in the past. But, the costs of production and distribution typically outweigh the benefit with a perishable code base like the Linux kernel (things chage pretty quickly, so the video would go out of date). But, PTR's training classes do give you the charts and the labs for you to run on your own system (our labs are written to run on our beagleboard-based systems).
@MIKE: Is there great tutorials like a video based STEP-BY-STEP type for a complete course in Linux programming geared to embedded systems you could recommend?
@plung Unfortunately, the Arduino ATMega chips are way too small to run Linux. Even the Mega2560 only has 256KB of Flash and 8K of SRAM. The smallest Linux system I've worked on had 1MB of RAM. So, the Arduinos can be used as Linux peripherals, but they can run Linux directly.
@timd Hmm... Well it depends on the frequency of access. Doing the access in kernel space allows you to remove the trap transition from user to kernel space. But, most I2C devices are pretty slow. So, there may not be any significant benefit. But, the faster you access, the more likely it is that moving to kernel space will help. It can also help you better abstract the devices. This is the basis for how devices are handled in Android. They're all abstracted and presented to the user using one of the "flingers".
@aranjbar Yes, using the EXPORT_SYMBOL clause allows you to make symbols visible to other drivers. It's the basis for the driver stack mechanism in the kernel
@Mike: I am using i2C to communicate to ADC's and Expantion IO hardware. Currently, all the software I have written runs in User-space, using ioctle, write, open functions. Would there be any benifit to creating seperate drivers for this hardware?
Michael - thanks for this course. It is a good reminder of the unix mideset. having worked with RTOSs and bare metal embedded systems this has been a fun exposure to some of the areas that I had not used in the past.
The dmesg command dumps the entire circular buffer. You can filter going into the buffer, or you could "grep" the outpu coming out of the buffer to filter.
If you where to mount a file system on top of an existing directory anything in the original directory would be masked by the one you mount on top of it. There are also things called "fuse" mounts that allow entries in the base directory that don't exist in the overlay directory to be seen. This is used in /dev when we're running the udev hot-plug system.
So far, all of the interfaces we've talked about in these past couple of days are found in both 2.6 and 3.x kernels. It's really a matter of degree for many of these. 3.x kernels have more features for some of the services like ftrace and oprofile. But they exist in the kernel way back to 2.6.27.
@MIKE: let me rephrase my question with another. When you mount a filesystem to a directory, say /proc, all you see or have access to after that is what is in the filesystem. so, If you mount anything to /etc, it is my understandiing that everything in persistent space, can't be seen, until you unmount the fs. Is that accurate?
The config files for passwds and the like are all kept in /etc. They have persistence over boots because they're stored on the root file system. /proc and /sys dissappear twhen the system is shut down.
@MIKE: if procfs and sysfs reside in RAM, and are mounted to /proc and /sys respectively, where are the config files that we normally handle in our day to day Linux configuration?
Kernel debugging is normally down by "systems programmers". These are the folks who port the operating system to a new platform. But, a manufacturer of a plug-in card could also develop their own driver for their hardware. I'd encourage then to open-source the driver so we could include it in the mainline kernel. But, that is not a requirement.
@Rob Spiegel: I just had an epiphany. Every time you ask a question, my audio breaks up, because both the chat and audio data are coming over the same 3G data connection and compete with one another. Not much you can do about that of course.
@caa028: the "leading zero" is a feature of the C programming language to indicate that the value is an octal constant. So for example, decimal 13 = hexadecimal 0xd = octal 015. In other words, 13, 0xd, and 015 all represent the same value to C.
The first zero indicates octal. You can have four bytes of permission. The optional fourth byte (at the beginning) indicates things like run as superuser.
I'm mostly software, but understand hardware; specs, memory (mapping, DMA etc), processor protection levels, etc. haven't done drivers for a while though.
More of a systems engineer. I usually don't build the hardware, but do provide specific customizations to existing hardware and then provide kernel/software support for them
JSP - just remember, all we sent to Mars was a few thousand bucks of materials. All the rest was paid to companies and folks back here on Earth. (And we get lots back in new technologies and inventions; don't need Mars-knowledge for payback...)
The streaming audio player will appear on this web page when the show starts at 2pm eastern today. Note however that some companies block live audio streams. If when the show starts you don't hear any audio, try refreshing your browser.
We looked at a number of sources to determine this year's greenest cars, from KBB to automotive trade magazines to environmental organizations. These 14 cars emerged as being great at either stretching fuel or reducing carbon footprint.
Researchers at MIT and Sandia National Labs have observed a reaction in lithium-air batteries that could help improve the design of these cells for electric vehicles and other applications.
Healthcare might seem to be an unlikely target application for the Internet of Things technology, but recent developments show small ways that big-data is going to make an impact on patient care moving into the future.
From Dell / Intel® New Paradigms in Design Work Scott Hamilton, vertical market strategist for Dell Precision workstations, 5/2/2013 3
Early in my career, I worked as a draftsman and remember the days of drawing on vellum with numbered pencils and Mylar with plastic lead. This was a fun experience in the sense that I ...
I've been using workstations for more than 10 years and love finding ways to get more performance from my system. With demanding professional applications that require more power each ...
A lasting memory from my first job as an engineer in an auto assembly plant is standing on hard concrete at six in the morning, vending-machine coffee clutched in hand, listening to ...
A quick look into the merger of two powerhouse 3D printing OEMs and the new leader in rapid prototyping solutions, Stratasys. The industrial revolution is now led by 3D printing and engineers are given the opportunity to fully maximize their design capabilities, reduce their time-to-market and functionally test prototypes cheaper, faster and easier. Bruce Bradshaw, Director of Marketing in North America, will explore the large product offering and variety of materials that will help CAD designers articulate their product design with actual, physical prototypes. This broadcast will dive deep into technical information including application specific stories from real world customers and their experiences with 3D printing. 3D Printing is
To save this item to your list of favorite Design News content so you can find it later in your Profile page, click the "Save It" button next to the item.
If you found this interesting or useful, please use the links to the services below to share it with other readers. You will need a free account with each service to share an item via that service.