uClinux kernel panic: Stack overflow

If you’re using ucLinux, you may get kernel panic errors coming out of nowhere. There may be several reasons (buffer overflow, out of memory..), but the most common is stack overflow for the process or one of the threads. To increase the stack size of a flat binary you’ll need to adjust the LDFLAGS as follows:

This will set the stack size to 64KB. To change the stack size of a thread (e.g. 32KB below), you’ll need to set the stack size attribute:

How to detect which thread suffers from stack overflow? First, you can check your code for recursive function calls and local variables (especially arrays) both of which will be added at runtime to the stack to estimate what should be the stack size. So if you have large arrays you may use a pointer + a call to malloc instead. If this can not fix […]

EP9307 Thin Client with DirectVNC

One of my reader had issues running Thin-clients ENTC Encore-1000 based on EP9307 and wanted to update the firmware in his systems. So I’ll explain how to access Linux, Windows XP or any other operating systems using a thin client based on Cirrus Logic EP9307 hardware. This is for reference only, and the performance may not be suitable for your environment/setup. One PC (server) is needed to run VNC (Virtual Network Computing) server for each remote desktop (i.e. each thin client), then the thin client can run the software without hard disk by just using the network connection. This can be used for checking emails, browsing internet, office applications, etc.. All resource heavy tasks are done on the server side whose specifications may be chosen to match the applications requirements. I’ll explain how to use Linux, but Windows XP (or any other operating systems for that matter) could also be […]

Digital Signage Features – A Quick Guide to Select Your Digital Signage Solution

There are a lot of different digital signage solutions around and it may be difficult to find which one is right for you since there can be quite a few different features and options. So I’ll do my best to explain the main features to guide your choice if you are planning to purchase a digital signage solution (embedded signage player, content management software and server). I’ll focus this post on the digital signage player, but bear in mind the content manager software is equally very important. [ad#Google Adsense – Wide Banner] Hardware features Video outputs: composite, component (YPbPr), VGA, DVI, HDMI, LVDS The capability to output simultaneously to different video outputs maybe an advantage if your plan is to use one player to output to several monitors. Video resolution: Standard Definition (e.g. NTSC) vs. High Definition (e.g. 1080p) This is a simple choice based on costs and whether you […]

Sigma Designs Android Demo

Here’s a demo of Android running on Sigma Designs SMP8654. They made their own GUI and start Android from there. To see the android part just go to 2:35 directly. 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

Resources for SMP865x SMP8652 SMP8653 SMP8654 SMP8655 SMP8656

Less than a year ago, Sigma Designs released the SMP8652, a secure media processor “designed to provide the optimal price/performance configuration for thin client applications, which include IPTV set-top boxes, digital media adapters, and hybrid cable/IP thin clients.” SMP8652 provides cost savings compared to the SMP863X series, due the integration of functions such as Ethernet and USB – that allowed them to skip PCI support in their new chip – and better performance (500Mhz MIPS24K CPU). SMP8650 series processors also use the MRUA and DCCHD SDK that need to be purchased as for the previous generation of chips. [ad#Google Adsense – Wide Banner] You can also purchase more SDK from Sigma for SMP8652: Adobe Flash Lite Qt/Webkit Integration Java VM Some DRM SDK (e.g. Microsoft DRM)… As for SMP8630 series, SMP86520 series processors also have a MMU (as most of new chips nowadays) so that you won’t come across the […]

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 […]

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 […]

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 , […]