Tag Info

20

I'd say you're dreaming. The main problem will be the limited RAM. In 2004, Eric Beiderman managed to get a kernel booting with 2.5MB of RAM, with a lot of functionality removed. However, that was on x86, and you're talking about ARM. So I tried to build the smallest possible ARM kernel, for the 'versatile' platform (one of the simplest). I turned off all ...

16

I don't have the time for a full explanation, but I can give you cookbook-style the commands I use on my Linux box to program AVRs: Preparations On Ubuntu, make sure several required packages are installed: sudo apt-get install avr-libc arvdude binutils-avr gcc-avr srecord optionally throw in gdb-avr simulavr. I started to create a directory in which all ...

15

You see aliasing in your capture, not clock jitter - a case of the wrong tool for the job. A 2Mhz clock has a 500ns period, so is high for 250ns. With a 16Mhz logic analyser you are taking samples every 62.5ns, so ideally you'd see 4 high samples, 4 low samples repeating. Now consider the effect of a minuscule 0.5% difference in frequency on the CPU ...

14

CodeSourcery has a free gcc-based toolchain for the Cortex M3. There are instructions on configuring the toolchain for the Luminary LM3s6965 for a Windows, Mac, and Linux host here: http://claymore.engineer.gvsu.edu/egr326/LM3S6965. It should also work with your LPC processor with minor tweaks. See also this question: ...

14

Regarding the ARM Cortex-M3: Linux requires an MMU (Memory Management Unit). The ARM Cortex-M3 does not have one. It is impossible to run the mainline Linux kernel on the ARM Cortex-M3. However, there is a variant of the Linux kernel for MMUless processors called uCLinux. Linux on M3 Guide ST's Application Note on uCLinux However, as others have noted, ...

14

A textbook 32-bit RISC processor core capable of running the no-mmu version of linux doesn't actually need to be that large - the real resource you need is far more RAM (10s of megabytes) than available in any FPGA, so you'll probably want SDRAM on the board and a controller for that in the FPGA. That said, if you want anything more than a trivial level of ...

13

If this is for a prototype - consider adding a USB ethernet adapter. If you're building a product, I'd consider an onboard ethernet switch chip. Like this: http://www.micrel.com/page.do?page=product-info/fastether_sw.jsp The ADM6996 may also be an option, if you can find it.

12

Since SPI is a synchronous protocol the exact frequency at any one point in time really doesn't matter. Everything is keyed to the edges of the clock, so the exact timing between edges really doesn't matter - within the limits of the device of course.

11

I'd like to see this too, but my gut instinct is to say "maybe, but it's a lot of work". Even the smallest Linux distro is going to need around a megabyte of RAM to run. This means at least 30 or so additional pins for the RAM controller in the microcontroller, and a couple of big RAM chips. One of the simplest architectures I know that has Linux for it ...

10

My short answer is to just go with LTSpice, it is one of the best simulators on the market and it is free. You can't really beat that. But if you would like a breakdown feel free to read my personal opinions. HSPICE: Advantages: HSPICE is widely considered one of the most accurate simulators on the market. However I have no actual experience using it. ...

10

Cortex-M isn't up to the job, you need the ARM926EJ-S A search for "Cortex-M + Linux" doesn't come up with a lot of answers because the Cortex-M isn't designed for Linux. The least-powerful ARM generally considered able to run a full OS like Linux is the ARM926EJ-S series, which uses the ARMv5 architecture. This is a classic processor, with wide adoption ...

10

I'd say either ngspice with gspiceui (part of gEDA I believe) or LTSpice with wine as Renan has already mentioned. Here's a screenshot of ngspice on KDE (with one of the graphical addon packages like nutmeg): I have a linux box and I use the second option (rarely, since I'm mostly on my Windows laptop), simply because I'm used to LTSpice. There are ...

9

The Atmel AT91SAM9260B comes in a LQFP package and may be a little bit lower in price than the SAM9G20. It has a MMU and the same peripherals as the SAM9G20 but runs at 200 MHz rather than a max of 400 MHz. Pay attention to the details in the Atmel Application note Schematic Checklists and you will be successful. You could also try the AT91SAM9XE512 with ...

9

To successfully accomplish this, you probably want the following: Localization Sensors - If you are on a smooth surface, wheel odometry should be enough. The rougher the area that you are operating in, the more sensors you would need. Other common sensors for localization: Digital Compass, IMU, GPS, Vision Tracking (Fiducial Recognition), Stargazer ...

9

There is good Linux support for many microcontrollers: Atmel's AVRs are well supported, with the GCC compiler and avrdude for loading code. An Arduino makes a good development board for starting out. Microchip's PICs are supported by MPLABX which provides compilers, IDE and code loading (using a PICkit). The SDCC compiler supports 8051, Z80, HC08 and ...

9

Please check this site for some Cortex-M3 platforms that support Linux (uClinux): http://www.emcraft.com/ We successfully run uClinux on the following Cortex-M3 MCUs: NXP's LPC1788, STmicro's STM32F2, Actel's SmartFusion, and are in process of adding support for a couple more: Freescale Kinetis, STM32F4 (these two are Cortex-M4 rather than Cortex-M3). ...

9

An easy way to program and debug the STM32 Discovery board (or any STM32 using an ST-Link programmer) is to use the 'stlink' project https://github.com/texane/stlink (however OpenOCD seems more popular) There are some good pages on how to develop for STM32 discovery on Linux, such as http://gpio.kaltpost.de/?page_id=131 and ...

9

You can use the AVR GNU tools as standalone packages in linux. These include avr-gcc, avr-binutils, and avr-libc. This is what is referred to as the toolchain. Once you have built a hex file and you are wishing to flash it onto your chip, you can use avrdude. All of these are freely and readily available on Linux and not too difficult to configure to work ...

8

Check how much current your board needs. From memory, the ARM-USB-OCD can only supply a few 10's of milliamps. It is not uncommon for a dev board to use a couple of hundred. As a trouble shooting step, try getting openocd to communicate with the JTAG adapter without it connected to the board.

8

There are some steps before getting on embedded linux. As @KKToronto said, it would be nice if you have a desktop linux experience first. If you don't have any experience I recommend installing Ubuntu in your desktop/notebook in order to get some feeling with the OS. To go from the desktop to the embedded world, at least on linux way, is relatively easy, if ...

8

If your filesystem is read-only, use ext2. That is proven stable for several decades, is fast, efficient, supports ownership, supports permission bits and has a huge user base as every Linux box supports it. In other words it supports everything a decent Linux system requires. If read-only is not an option, your next best bet is ext3. Apart from all the ...

7

Linuxstamp is probably your best bet. It's open and has the PCB drawings, schematics, etc available. But as far as doing it at home - probably not. There's some very fine pitches on some of the parts. You're welcome to try, but it seems like a fair bit of consternation to me.

7

The Nintendo DS is capable of running uCLinux. You can get a used one for cheap, the only peripheral you need to run Linux on it is a microSD adapter (can be had for $15 from dealextreme.com) and a microSD (small ones are basically free these days) 7 You should also check out Eclipse for C/C++ and the AVR-Eclipse plugin. Works flawlessly for me, especially with crosspack. I use it for about a year now and I really like it. 7 I agree with zklapow but check the projects section on AVR Freaks too. That's how I learnt back in the day before arduinos. Also, you will almost certainly have to read the datasheet for your chip to get anything useful done. There are no nice functions that, for example, read an analog pin in because there are so many parameters that the arduino environment ... 7 The thing about linux based developers is that they usually have their own unique workflow (vim vs emacs, etc). In my opinion, linux is one big IDE that you add your own parts to. With that in mind: If you are using a debian-based distro, run this in your command line: sudo apt-get install build-essential avr-gcc avrdude Then find a text editor you like ... 7 Both the bootloader and Linux distribution depend on what your final application is. RedBoot and uBoot are both popular bootloaders for embedded Linux. They support writing to flash, loading code over serial/ethernet etc. But, for a deeply embedded device, a very minimal loader might be better, leaving everything else to linux. If you need access to a lot ... 7 I think the answer is chips in the ARM926EJ-S family, like the AT91SAM9G20. The G20 costs around$10 in relatively low quantity, and it has an MMU. Unfortunately, it's only available in a BGA package, and you'll need external memory. The good news is that the ball pitch on the G20 is 0.5 mm (edit: there's a 0.8 mm pitch version too), which is just within ...

7

There's a build script here: http://github.com/esden/summon-arm-toolchain to build a gcc based toolchain which targets ARM from Debian based computers. It states that it is tested and confirmed working for: STM32F10x (Olimex STM32-H103 eval board, Open-BLDC v0.1, v0.2, v0.3) which appears to be Cortex-M3 based.

7

You can use these macros that get defined automatically when you include <avr/io.h>: SIGNATURE_0 SIGNATURE_1 SIGNATURE_2 For ATmega1280, they're defined as: /* Signature */ #define SIGNATURE_0 0x1E #define SIGNATURE_1 0x97 #define SIGNATURE_2 0x03 in iom1280.h (which is automatically included through <avr/io.h> when you compile code for the ...

Only top voted, non community-wiki answers of a minimum length are eligible