Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
This commit is contained in:
Sanchayan Maity 2020-04-04 20:15:31 +05:30
parent 734f268715
commit 8719aa4672
14 changed files with 14 additions and 14 deletions

View File

@ -1,7 +1,7 @@
---
author: Sanchayan Maity
title: CGI and SSI with lwip on Stellaris
tags: CGI, SSI, lwip, Stellaris
tags: CGI, SSI, lwip, stellaris
---
<p style='text-align: justify;'>CGI stands for Common Gateway Interface and SSI stands for Server Side Include. The below post is going to be about, how to use them with lwip for employing web page interface in your embedded system.</p>

View File

@ -1,7 +1,7 @@
---
author: Sanchayan Maity
title: Debugging a hard fault in ARM Cortex M3
tags: ARM Cortex M3, Hard Fault, Stellaris
tags: ARM, cortex, hardfault, stellaris
---
<p style='text-align: justify;'>I have been working on the Stellaris LM3S6965 for quiet a while now. So I thought, may be I will put my learning's in one place, so others can use them and not get stuck, where I did.</p>

View File

@ -1,7 +1,7 @@
---
author: Sanchayan Maity
title: A little something on Linux Device Drivers
tags: device drivers, linux
tags: device-driver, linux
---
<p style='text-align: justify;'>I have been struggling for a while now, trying to learn device drivers and system programming in Linux. One of the many questions I had was, how does the CPU using the Linux kernel know, which devices are present and what are the drivers for them. The answer to this question is through "Platform Device and Platform Data". Though soon enough, you may find them obsolete as Linux very well might completely start using Device Trees. Below, are a few links from which you can learn about the Platform Device API and Device Tree.</p>

View File

@ -1,7 +1,7 @@
---
author: Sanchayan Maity
title: Arch Linux - Finally!!
tags: arch linux
tags: archlinux
---
<p style='text-align: justify;'>I have tried Ubuntu 10.04, Ubuntu 11.10, Ubuntu 12.04, Debian Squeeze, Mint Maya and Fedora. Of these, I have enjoyed Mint Maya the most. I got pissed with the Unity interface and though Mint was super nice, I wanted something more to fiddle with. Having heard of Arch and Gentoo being the two distributions which are toughest to install, but, customizable exactly the way one wants it, I decided to try one of these.</p>

View File

@ -1,7 +1,7 @@
---
author: Sanchayan Maity
title: Beagleboard-xM GPIO Kernel Module Driver
tags: beagleboard, gpio driver
tags: beagleboard, gpio-driver
---
<p style='text-align: justify;'>Whenever i search for a particular implementation, of let's say GPIO, only user space implementation comes up in search results which use the sysfs interface. Being more interested in hardware and the kernel side of things, I thought I did start practicing writing some kernel module drivers. So, here is my first simple GPIO kernel module driver for the Beagleboard-xM.</p>

View File

@ -1,7 +1,7 @@
---
author: Sanchayan Maity
title: Device node creation without using "mknod"
tags: beagleboard, gpio driver
tags: beagleboard, gpio-driver
---
<p style='text-align: justify;'>In my last post, where I showed how to write a character gpio driver, I had used mknod for device node creation. Without mknod the device files would not have been created under /dev. So, we had to manually create the device node under /dev using mknod. Now, cannot this manual work be done away with? Of course, it can be done!!.</p>

View File

@ -1,7 +1,7 @@
---
author: Sanchayan Maity
title: PCB Design Fundamentals - Impedance Matching
tags: pcb design, impedance matching, hardware
tags: pcbdesign, impedance-matching, hardware
---
<p style='text-align: justify;'>Once upon a time, I use to think that the printed circuit boards were nothing, but, just a means for connecting the various components to each other and the system design was much more important. Working in the industry for the past two and half years, has made me realize that even though the system design is quiet important, a well designed system is not going to work without proper attention being paid to the PCB Design.</p>

View File

@ -1,7 +1,7 @@
---
author: Sanchayan Maity
title: PCB Design Fundamentals - A Design Guide
tags: pcb design, hardware
tags: pcbdesign, hardware
---
<p style='text-align: justify;'>Recently I had the privilege to get some hands on training from one of the senior guys working at the Switzerland headquarters of our company. Till date, I had only learned about PCB design by reading books with a bit of experience coming from having dealt with PCB design vendors. It was very interesting to see the actual application of the principles I learned from someone very knowledgeable and experienced, first hand. The most interesting part of the training was the part where the concept of return paths was explained and how to take care of this while doing PCB design. It is something which I had not understood previously during my reading of books and application notes.</p>

View File

@ -1,7 +1,7 @@
---
author: Sanchayan Maity
title: Implementing a MySQL Client
tags: mysql, wince, amazon rds
tags: mysql, wince, amazon, rds
---
<p style='text-align: justify;'>Lets say a situation comes where you have to access a MySQL Server running in some part of the world and for some reason the MySQL Client/Connector is not available for your platform (i am talking of embedded, just in case you are wondering) or though the source is available, trying to get it to compile cleanly for your platform is just too much of a f****** headache. Well, a much simpler way exists. Just implement the MySQL Client/Server protocol using the article below.</p>

View File

@ -1,7 +1,7 @@
---
author: Sanchayan Maity
title: How to write a Platform Device/Driver - ADC Driver using wm97xx codec
tags: device driver
tags: device-driver
---
<p style='text-align: justify;'>Somewhat more than two years back, while I was working in Godrej, a senior colleague from my development team gave us a lecture on how to write character drivers for Linux. Didn't understand one single thing, but since that time I have been trying to learn Linux kernel related stuff, with device drivers being the main area of focus. Of course, in between there have lot of lulls where I have hit a road block and then gone into a depression mode and then started again from where I left off, with renewed zeal and vigor.</p>

View File

@ -1,7 +1,7 @@
---
author: Sanchayan Maity
title: How to write a Platform Device/Driver - PWM Driver for Tegra2
tags: device driver
tags: device-driver
---
<p style='text-align: justify;'>I will get straight to the point in this tutorial and give the codes here. The explanation given in the earlier post for ADC should suffice.</p>

View File

@ -1,7 +1,7 @@
---
author: Sanchayan Maity
title: Adding sysfs support to a driver
tags: device driver, sysfs
tags: device-driver, sysfs
---
<p style='text-align: justify;'>A month or so back I had given an example of how to add support for a device using the platform bus framework, which as such mainly showed how exactly platform framework worked and what it was used for. In the driver I wrote, I provided access to the required values using the ioctl calls. The ioctl() calls are not a recommended way of doing this. These days drivers provide the data and control to the user space through the **sysfs** interface. As the **Linux Kernel Development** book mentions "**The sysfs file system is currently the place for implementing functionality previously reserved for ioctl() calls on device nodes or the procfs filesystem**". This post will show how to make possible what we tried to achieve in the </p>

View File

@ -1,7 +1,7 @@
---
author: Sanchayan Maity
title: Implementing mmap for transferring data from user space to kernel space
tags: device driver
tags: device-driver
---
<p style='text-align: justify;'>I was recently working on an application where streams from four multiplexed analog video channels had to be displayed in four windows. I was trying to do this using OpenCV while the analog video decoder/multiplexer in question was the ADV7180. For switching the channels, I was using an ioctl() call to switch the channels in a while loop with a certain time interval, while capturing the frames and putting them in a separate queues as per the channel selected. This was done in the main thread, while separate threads pulled the frames from the queue and rendered them. The capturing and rendering part was being done with OpenCV. I was not able to achieve a decent enough frame rate with this. I had put delays in certain places to avoid frame glitches in the multiple windows displaying the frames.</p>

View File

@ -1,7 +1,7 @@
---
author: Sanchayan Maity
title: How is required information passed to device drivers in Linux kernel
tags: device driver
tags: device-driver
---
<p style='text-align: justify;'>First the basic is how do you provide information like memory addresses from which the driver will do the register read/writes? Now, depending on the kernel version, this can be different. The older kernels and drivers used the platform architecture to specify/get this information. New kernels and drivers rely on device trees for this information.</p>