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.
For 3D printing to make the jump from rapid prototyping to manufacturing, engineers will need to find easier ways to move products from their CAD screens to their printers.
Gigabit and PoE are two networking technologies moving ahead in tandem as industrial users power remote Ethernet devices such as IP security cameras at 1,000 Mbps over existing CAT5 cable.
New versions of BASF's Ecovio line are both compostable and designed for either injection molding or thermoforming. These combinations are becoming more common for the single-use bioplastics used in food service and food packaging applications, but are still not widely available.
From Dell / Intel® New Paradigms in Design Work Scott Hamilton, vertical market strategist for Dell Precision workstations, 5/2/2013 5
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 ...
For industrial control applications, or even a simple assembly line, that machine can go almost 24/7 without a break. But what happens when the task is a little more complex? That’s where the “smart” machine would come in. The smart machine is one that has some simple (or complex in some cases) processing capability to be able to adapt to changing conditions. Such machines are suited for a host of applications, including automotive, aerospace, defense, medical, computers and electronics, telecommunications, consumer goods, and so on. This radio show will show what’s possible with smart machines, and what tradeoffs need to be made to implement such a solution.
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.