Questions tagged [uclinux]

μClinux was a fork of the Linux kernel for microcontrollers (in embedded systems) without a memory management unit (MMU). It was integrated into the main line of development as of 2.5.46; the project continues to develop patches and tools for microcontrollers.

μClinux was originally created by D. Jeff Dionne and Kenneth Albanowski in 1998. Initially, they targeted the Motorola DragonBall family of embedded 68k processors (specifically the 68EZ328 series used in the Motorola PalmPilot) on a 2.0.33 Linux kernel. After releasing their initial work, a developer community quickly sprang up extending their work to newer kernels and other microprocessor architectures. In early 1999, support was added for the Motorola (now Freescale) ColdFire family of embedded microprocessors. ARM processor support was added later.

Although originally targeting 2.0 series Linux kernels, it now has ports based on Linux 2.4 and Linux 2.6. The Linux 2.4 ports were forward ported from the 2.0.36 Linux kernel by Michael Leslie and Evan Stawnyczy during their work at Rt-Control. There were never any μClinux extensions applied to the 2.2 series kernels.

Since version 2.5.46 of the Linux kernel, the major parts of μClinux have been integrated with the main line kernel for a number of processor architectures. Greg Ungerer (who originally ported μClinux to the Motorola ColdFire family of processors) continues to maintain and actively push core μClinux support into the 2.6 series Linux kernels. In this regard, μClinux is essentially no longer a separate fork of Linux.

The project continues to develop patches and supporting tools for using Linux on microcontrollers. μClinux has support for many architectures, and forms the basis of many products, like network routers, security cameras, DVD or MP3 players, VoIP phone or Gateways, scanners, and card readers.

Source: Wikipedia (μClinux)

Official website: www.uclinux.org

97 questions
3
votes
2 answers

Please explain the use of ':' and a trailing ',' in this struct initialization C code

static struct file_operations memory_fops = { open: memory_open, /* just a selector for the real open */ }; this is from mem.c file in uclinux
mike
  • 31
  • 3
3
votes
3 answers

How do I spawn a daemon in uClinux using vfork?

This would be easy with fork(), but I've got no MMU. I've heard that vfork() blocks the parent process until the child exits or executes exec(). How would I accomplish something like this?: pid_t pid = vfork(); if (pid == -1) { // fail …
lxe
  • 153
  • 9
3
votes
1 answer

Bitbanging a PIO on Coldfire/ucLinux

Here's the problem: I need to program some hardware via 2 pins of the PIO (1 clock, 1 data). Timing constraints are tight - 10ms clock cycle time. All this, of course, whilst I maintain very high level services (CAN bus, TCP/IP). The downstream unit…
J Evans
  • 1,090
  • 2
  • 16
  • 36
3
votes
1 answer

Initrd, Ramdisk, Initramfs, uclinux

I am working on uclinux porting on coldfire board M5272C3. Right now I have kernel running from RAM with romfs as my rootfile system. I am not clear about few terms what they mean and when to use them.... Please explain me in a simplest possible…
Phogat Ashish
  • 173
  • 1
  • 2
  • 9
3
votes
2 answers

What does it mean to attach ROMFS in RAM?

I'm building a kernel for an ARM platform running uClinux 2.4 and under "General Setup" in the Linux configuration there is an option called "m68knommu-style attached romfs in RAM support". My ARM assembly skills are somewhat limited but as far as I…
David Holm
  • 17,522
  • 8
  • 47
  • 47
2
votes
2 answers

High resolution timer on Coldfire (MCF5328)

I've inherited a embedded project that requires some simple, per-function performance profiling. It consists of a Coldfire (MCF5328) running uClinux (2.6.17.7-uc1). I'm not an expert on either the Coldfire, or uClinux (or Linux for that matter), so…
Tergiver
  • 14,171
  • 3
  • 41
  • 68
2
votes
0 answers

MTDBLOCK1 appears to be overwritten with SD Card contents on embedded Linux system

Background I am maintaining a product that has an Analog Devices ADSP-BF547 Blackfin Microprocessor that is running the ADI's 2011R1-RC3 distribution of uCLinux, which uses Busybox. The processor mounts an SD card which it writes some encrypted TAR…
Nick
  • 1,361
  • 1
  • 14
  • 42
2
votes
0 answers

Converting ELF ARM executable to BFLT executable for uClinux

I have a little problem : I need to add a program to a firmware which will be used in an embedded IP Camera in my office. The CPU of it is a ARM7TDMI. So, that being said I cross-compiled my program on a Debian x64 machine and got my ELF executable…
K. Lasp
  • 21
  • 4
2
votes
1 answer

Magnetometer data on MPU-9250 (uClinux)

I've found a few other people ask about this, but all of them are coding in Arduino, and I'm struggling to translate it into my project. I'm on a research team developing a Cube Satellite for launch, and my role is to communicate with the…
Connor Olsen
  • 145
  • 1
  • 14
2
votes
1 answer

Convert Olson time zone file to TZ environment variables

We are using the "America/New_York" convention for the user to select the timezone, but in our resource constrained system, we must manually provide the actual TZ variable. For example, for New York, we have: timezones["America/New_York"] =…
Mike Crowe
  • 2,203
  • 3
  • 22
  • 37
2
votes
1 answer

uclinux and necessity for device drivers

Normally MMU-less systems don't have MPU (memory protection unit) as well, there's also no distinction between the user & kernel modes. In such a case, assuming we have a MMU-less system with some piece of hardware which is mapped in CPU address…
Mark
  • 6,052
  • 8
  • 61
  • 129
2
votes
1 answer

QML running with Qt for Embedded System on uclinux?

I only write QML app with Qt 5.1.1 running on Mac & Windows. Anyone know what's the version of Qt for Embedded System integrated in the uclinux? Do the Qt on uclinux support QML? Do I need to re-implement the UI with Qt widgets in C++ to run it on…
Robert
  • 1,660
  • 22
  • 39
2
votes
1 answer

lpc1788 cortex m3 interrupt handling with uclinux

I am newbie for the uclinux device drivers please guide me how to do this.. suppose I have connected a switch to one of the cortex m3 controller pin and whenever the switched is press the LED connected to other pin of controller as to light. how to…
amar
  • 509
  • 3
  • 8
  • 17
2
votes
0 answers

C on embedded system w/ linux kernel - mysterious adc read issue

I'm developing on an AD Blackfin BF537 DSP running uClinux. I have a total of 32MB SD-RAM available. I have an ADC attached, which I can access using a simple, blocking call to read(). The most interesting part of my code is below. Running the…
Tausen
  • 55
  • 7
2
votes
0 answers

strange gdbserver output shows at my target device

when I run gdbserver on uclinux target device blackfin bfin537/stamp it work perfectly but it always generates annoying output Request to get for unknown register 232 Request to get for unknown register 236 it is extremely annoying since each step…
Sina Sou
  • 159
  • 1
  • 8