Posts

Showing posts from 2018

Linux Device Driver Turorial

Basics The role of a driver is to provide mechanisms which allows normal user to access protected parts of its system, in particular ports, registers and memory addresses normally managed by the operating system. One of the good features of Linux is the ability to extend at runtime the set of the features offered by the kernel. Users can add or remove functionalities to the kernel while the system is running. These programs that can be added to the kernel at runtime are called modules and built into individual files with .ko (Kernel object) extension.The Linux kernel takes advantages of the possibility to write kernel drivers as modules which can be uploaded on request. This method has di erent advantages: The kernel can be highly modularized, in order to be compatible with the most possible hardware A kernel module can be modifi ed without need of recompiling the full kernel. Linux driver modules can be found in: /lib/modules/<version>/kernel/drivers/ where <version&g

Flexible DSP Accelerator using CarrySaveArithmatic

Image
Tiny arithmetic circuit inside Functional Computational Unit of DSP accelerator can affect the complete DSP accelerator performance Present day applications on signal processing requires a very high degree of computation. For example in the area of multimedia, the information required to present the multimedia data is increasing.This is because of the increased demand of clarity of the multimedia content on desktop and embedded applications.Most of the embedded devices which supports multimedia content like displaying of video data and image data requires large amount of calculations which gave rise to DSP accelerator. If the embedded application requires handling of HD or 4K content, then it is required to have a powerful DSP which has a very high computational capability on a small hand held device.This gives rise to the need of reduction in power consumption and area of the chip. The DSP accelerator consists of multiple Flexible computational units which intern consists of am

LSB Based Color Image steganography Combined with Cryptography

Image
We have to collect information in following topics and understand them. 1.Understanding of Image steganography 2.Understanding of LSB based steganography 3.Cryptography 4.peak signal-to-noise ratio (PSNR) and safety 5.performance evaluation of the Image steganography Then compare the results mentioned in the paper.             (results of PSNR and safety with traditional LSB based stenography technique)             (results of PSNR and safety with stenography combined with cryptography technique) Today we will concentrate on Topics 1,2 and 3.Please try to collect the information. By tomorrow morning we can have a discussion for better understanding. I have collected the following info, plz try to use it. 1. Understanding of Image steganography: Steganography: how to hide certain information in another public information, and then to pass hidden information by transferring public information. Steganography types: 1.Text 2.Image <= we concentrate more on im

Built In Self Test

Image
A basic BIST design consists of the following components, 1.BIST controller 2.CUT (circuit under test) (in our case it is RAM) 3.Test pattern generator 4.Response verification 5.Testbench to verify the functionality of the above BIST design In case of our implementation CUT is a SRAM, so it is required to design and implement a small SRAM for testing.   BIST controller has to access the SRAM for sending the test pattern and verify the output of the CUT. Based on the verification results a self repairing technique needs to be incorporated. We will be sharing the sample verilog code for the above design Soon.

Automatic Weather Monitoring System using Arduino

As we already know that Arduino is very popular platform to design and develop small scale embedded systems. We will take an example of implementing a Automatic Wireless Weather Monitoring System within 2500Rs [ :) ] in 15 days of time. We have identified a low cost Arduino based open H/W where we can use the existing board designs. While collecting the information related to the sensors, we came to know that the sensor manufacturers are providing software interface libraries and sample applications which can collect the data from the sensors. So we can avoid the cost and time for the interfacing of sensors, The following is the sample code provided by sensor manufacturer .This code to reads data from the temperature and humidity sensors within 20 lines of code. void setup() {   Wire.begin();   Serial.begin(9600); } void loop() {   Serial.print("Humidity(%RH): ");   Serial.print(SHT2x.GetHumidity());   Serial.print("     Temperature(C): ");   Seri

.b4s playlist parser WINAMP XML PlaylistFormat

More info on this file format is at http://filext.com/file-extension/B4S This can be parsed using following xml based parser application. /* .b4s parser Application */ /*Author:chandrashekar bs*/ /*email:buggs.cancerion@gmail.com/chandragoan@gmail.com*/ /* I have not added <> for including files because of in google blogs since <> are interprested as htnl syntaxes and content within thos are not appeared*/ #include iostream #include string.h #include libxml/parser.h #include libxml/xinclude.h #include libxml/tree.h #include libxml/xmlIO.h int main(int argc, char **argv) {     xmlDocPtr doc;     xmlNodePtr nodePtr;     xmlNodePtr rootnodePtr;     xmlChar *xmlbuff;     int loopcount1, loopcount2, loopcount3, loopcount4;         loopcount1=loopcount2=loopcount3=loopcount4=0;     if(argc !=2)     {         printf("Usage %s: Enter valid b4s playlist file",argv[1]);     }     char *filename = (char *)argv[1];     doc = xmlParseFile((c

Linux Tools Development

Image
Today we will start a topic on tools available for Linux software development environment. When it comes to any application + middle-ware + device driver development, tools play very important role which saves time of development by making easy to develop and debug. Source code editor(Vim, Emacs (OTP), Eclipse, Cscope and Ctags) Compiler (the one and only GCC) [How to compile a compiler? :)] Glibc (GNU C library) [Development and maintenance ] Debugger(application and kernel (gdb and kgdb)) Crash analyzer (kernel crash analyzer and application crash analyzer ) Memory leak detectors [combination of backtrace() system call with memory leak detector like boehmgc and leaktracer] Designing an application which can insert debugging information. In our future post we will discuss the useful features of above tools and how to develop them. We will have source code walk through of  tools (2, 3, 5 and 6).Information related to Tools mentioned in 2, 3 and 5,6,7 are very inte

Opensourcecialization of Gaming Consoles

Image
When it comes to Operating systems used in hand held devices, Linux kernel dominates in the market. In gaming console market, Linux is not in good position. Popular Linux  distributions  in gaming market are 1.STEAM OS 2.Ubuntu Gamepack 3.Fedora Gamespin 4.Play Linux The idea is , we can modify the existing Linux distributions available for gaming on a powerful H/W. The popular gaming consoles available in market are Xbox, PS4 and Nintendo. Following pics will quick information about high level h/w architectures used in gaming market,

Automation of Electronic Change configuration (ECO) script generator to create netlist

This script is my hobby project which generates netlist for a given logical expression in verilog, 1. Parses the given logical expression 2. Imports gate strength from environment variable 3. Opens GATE_TABLE and identifies the required gate 4. Generates a netlist The script is not modular and doesn't use powerful perl capability to parse input expressions.So it may require further fine tuning. ################################################################################# #!/usr/bin/perl                                                                                                                                         # #Author: chandrashekarbs.1985@gmail.com                                                                                        # ############################################################################### sub search_strength{ #print "$search\n"; $min = @temp_search[0]; foreach $j(0 .. $search-1){ $min = @temp_search[0];  if(@te

Simple Mediaplayer Using Qt

Make sure the phonon library is installed with QT. I had libqt4-phonon-dev, libqt4-phonon, libphonon4, libphonon-dev installed. One of them surely provided the phonon library for me, don't know which. Also You are allowed to add your own decoder interface bypassing gstreamer at phonon-gstreamer interface. We will write very basic media player. It just plays file in a window. The source of the player is hard coded. So let's start. 1. We will be working on 3 files. One is the header (SimplePlayer.h), it's definition (SimplePlayer.cpp) and main.cpp to start the application and center the window. So let's star by starting our text editor and create these files. // SimplePlayer.h #ifndef SIMPLEPLAYER_H #define SIMPLEPLAYER_H #include class SimplePlayer : public QWidget { Q_OBJECT public: SimplePlayer(QWidget *parent = 0); ~SimplePlayer(); }; #endif // SIMPLEPLAYER_H As we can see we don't have any controllers(widgets) to do any other thing th

Mapping Keys to vim to execute commands and scripts

Vim is powerful and light weight source code editor. vim initialization settings can be done in .vimrc file. For example if you add  the following vim commands to the .vimrc file. vim will initialize with the following settings: . . se nu se hlsearch se incsearch se cindent . . . One power full feature of .vimrc that i know is mapping of  keys to execute the commands mentioned in .vimrc file. Below is the .vimrc file  which  executes eco_script_genertor.pl script and does multiple operations. map Do./eco_script_generator.pl "pa"k0i#pj0D:w:!rm -r -f ./cmd.do:e ./cmd.dop:w:e#:!rm -r -f ./.cmd_out:!source ./cmd.do > ./.cmd_out:r ./.cmd_out Here Ctrl+M key is mapped to execute the script.

Opensource contributions by locations

Image
Opensource Contributions by locations