In order to have code formatting consistency, we may choose to use only tabs or only spaces in the source code. We chose to only use spaces since that makes sure the code will be properly formatted in any text editor. In order to create 4 spaces while pressing tabs in vi, edit your vi settings: vi ~/.vimrc and add the 3 lines below to your config file set tabstop=4 set shiftwidth=4 set expandtab The next time you’ll use vi, pressing the tabulation key will create 4 spaces. However, in some cases, e.g. Makefile, you may still need to use real tabs. Just press Ctrl+V then tab to create a real tab. Jean-Luc Aufranc (CNXSoft)Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011. www.cnx-software.com
Digital Signage Players in Hong Kong and China
I’ll show a few digital signage applications based on Sigma Designs EM8620 and SMP8630 series that are currently used in Hong Kong and China. Bus Digital Signage SinoCDN is a Hong Kong company providing broadband media delivery solutions. SinoCDN currently provides a digital signage solution for Hong Kong – China cross boarder buses called IPAD. Their solution is based on EM8623L Sigma Designs and allows content update thru Wifi at the border between China / Hong Kong. If you’ve ever been at the Hong Kong / China border (Lok Ma Chau) and seen some Wifi access points whose names starts with sinocdn, they are used for this purpose. Digital Signage & POS (Point-of-Sale) Heng Yu Technologies is another Hong Kong company specialized in the manufacturing of “customized input and display technology for the industrial markets” They provide point of sales and advertizing platform based on several Sigma Designs platforms, including […]
Linux LAN Port Scanner
Just a short post to show how to scan the open ports of a remote machine on the local network: sudo nmap -sS 10.10.10.123 Starting nmap 3.81 ( http://www.insecure.org/nmap/ ) at 2010-04-28 16:00 HKT Interesting ports on 10.10.10.123: (The 1660 ports scanned but not shown below are in state: filtered) PORT STATE SERVICE 69/tcp closed tftp 139/tcp open netbios-ssn 445/tcp open microsoft-ds MAC Address: 00:50:FC:B1:E9:70 (Edimax Technology CO.) Nmap finished: 1 IP address (1 host up) scanned in 25.252 seconds Jean-Luc Aufranc (CNXSoft)Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011. www.cnx-software.com
Installing Android in your PC
In case you want to checkout Android but do not have any devices to do so, you can simply install it in your PC. In this blog entry I’ll show how to install Android in VirtualBox with a computer running Windows XP, but this could be installed in any OS supported by VirtualBox or other virtual machine (e.g. VMWare). If you don’t have it yet, download VirtualBox for your OS and install it first. The first thing is to download Android-x86 ISO file. While it is downloading you can add a new Virtual Machine to VirtualBox. After you click on the “New” icon, click on Next and enter your machine name. e.g. Android, and select the Operating System: Linux and version: Other Linux. Click on next to select the memory size: Click on next to select to create a new hard disk: Then basically select Next for the following steps […]
Software Documentation with Doxygen
This is a good practice to always have up-to-date software documentation. However, there can be discrepancy between the source code and the documentation over time and maintenance may be an issue. This is where Doxygen, a “Source code documentation generator tool”, may be handy as it will automatically generate documentation based on the comments in the source code. In order for Doxygen to work, all developers will have to follow the same source code format in all source files,which is in itself also a plus since it will make the code and especially comments in this case more consistent. We’ll just show to quickly generate html and pdf documentation using a sample program we’ll call cnxapp. So here’s the code for this “application” #include <stdio.h> /** Function1 description @param iArg1 First param description @param iArg2 Second param description @return 0 – Success -1 – Failure */ int function1(int iArg1, […]
Sigma Designs SMP863X Resources
SMP8634 / SMP8635 “Secure Media Processors” from Sigma Designs are used in our set-top-box and digital signage applications. In order to develop for that platform, an SDK must be purchased directly from Sigma Designs. There are different version of the SDK, once is mainly compatible with EM862X MRUA SDK and the newer one DCCHD is not, but offer a few more features. However, as for EM8620 series, the Linux kernel is open source so companies need to release the source if they modified it in their products. For example, you could download the GPL source released by Netgem – http://www.netgem.com/en/supportLinux.php for both Linux and utilities used in their NetBox HD. This is only the GPL source for your reference, after that there are also sigma linux drivers (not released by sigma) and not GPL, and the MRUA/DCCHD package that needs to be purchased from Sigma Designs. Contrary to EM8620 series […]
Setting up a time server (RFC 868)
This blog entry explains how to configure a time server as defined in RFC 868. not to be confused with NTP which is a newer protocol. This type of server is to be used with rdate as you’ll see below. Edit/ etc/xinetd.d/time and set disable = no. Make sure the lines below are present and uncommented in /etc/services time 37/tcp timserver time 37/udp timserver restart xinetd: /etc/rc.d/init.d/xinetd restart The time server will be started automatically each time the PC boots up. To test the time server, in your device use rdate (part of busybox): To set the date: rdate -s IP_ADRESS_OF_TIME_SERVER To print the date in the console: rdate -p IP_ADRESS_OF_TIME_SERVER Check the date by typing date Jean-Luc Aufranc (CNXSoft)Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in […]
Software profiling in embedded systems with O-profile
What is o-profile? See the description below extracted from http://oprofile.sourceforge.net/, o-profile official website OProfile is a system-wide profiler for Linux systems, capable of profiling all running code at low overhead. OProfile is released under the GNU GPL. It consists of a kernel driver and a daemon for collecting sample data, and several post-profiling tools for turning data into information. OProfile leverages the hardware performance counters of the CPU to enable profiling of a wide variety of interesting statistics, which can also be used for basic time-spent profiling. All code is profiled: hardware and software interrupt handlers, kernel modules, the kernel, shared libraries, and applications. OProfile is currently in alpha status; however it has proven stable over a large number of differing configurations; it is being used on machines ranging from laptops to 16-way NUMA-Q boxes. As always, there is no warranty. Why don’t we use gprof? For embedded system , […]