2010-03-31
Learn MVC
Note: Enhanced 3-D-reconstruction algorithm for C-arm systems suitable for interventional procedures
- low number of projections
- irregular sampling patterns caused by the mechanical instability
- algebraic method
- analytical method (Feldkamp alg. like)
Reference:
- Enhanced 3-D-reconstruction algorithm for C-arm systems suitable for interventional procedures. IEEE Trans Med Imaging. 2000 May;19(5):391-403.
2010-03-30
Compare two folders using WinMerge
2010-03-29
RC Acquisition Principle
The RC acquisition method is used to detect the human touch of any capacitive touch by measuring the small variation of the touch electrode capacitance. Electrode capacitance (C) is periodically charged and discharged through a fixed register (R). The capacitance value (C) is calculated by measuring the charge time (t1) the (Vout) voltage requires to reach the threshold (Vth).
In touch sensing applications, the capacitance value (C) is the addition of a fixed capacitance (electrode capacitance, Cx) and the capacitance added by the human finger (touch capacitance, Ct) when it touches or is close to the electrode. Correspondingly, it takes more time (t2) to reach the threshold (Vth) during charge and discharge. The increasing from (t1) to (t2) indicates that a finger has touched the electrode capacitance.
Reference:
2010-03-26
Open Source RTOS
2010-03-22
Port microC/OS-II to AVR32 UC3
- Task management, sometime call it scheduler.
- Time management, handle timer, delay.
- Intertask communication, how to share the resource between mutiple tasks.
- Memory Management, e.g. how to allocation of memory.
Let's see a concrete example: Porting micro C/OS-II to AVR32UC3 microcontroller. The codes in the first block (uC/OS-II book) are the general implementation of kernel, implemented in standard C. If you check the code more closely, you may find that some used functions (or macros) are not yet implemented there. For example:
- OS_TASK_SW()
For GUN toolchains
- #define OS_TASK_SW() __asm__ __volatile__ ("scall")
For IAR toolchians
- #define OS_TASK_SW() (OSCtxSw())
- #define uCOS 0x80
- #define OS_TASK_SW() asm INT uCOS
Usually, the porting is provided by vendor of chips, because these guys know it best and want their product as compatible as possible to all kernels.
Reference:
2010-03-19
What does SOC usually have?
System-on-a-chip or system on chip (SoC or SOC) refers to integrating all components of a computer or other electronic system into a single integrated circuit (chip). Usually it consists of
- One microcontroller, microprocessor or DSP core(s). Some SoCs – called multiprocessor System-on-Chip (MPSoC) – include more than one processor core.
- Memory blocks including a selection of ROM, RAM, EEPROM and flash.
- Timing sources including oscillators and phase-locked loops.
- Peripherals including counter-timers, real-time timers and power-on reset generators.
- External interfaces including industry standards such as USB, FireWire, Ethernet, USART, SPI.
- Analog interfaces including ADCs and DACs.
- Voltage regulators and power management circuits.
http://en.wikipedia.org/wiki/System-on-a-chip
RAM, ROM, and Flash Memory
http://www.escotal.com/memory.html.
RAM: Stands for random access memory; refers to memory that the microprocessor can read from and write to. When you create something in memory, it’s done in RAM. RAM is memory and vice versa.
ROM: Stands for read-only memory. The microprocessor can read from ROM, but it can’t write to it or modify it. ROM is permanent. Often, ROM chips contain special instructions for the computer — important stuff that never changes. The microprocessor can access information stored on a ROM chip whenever it needs to. The instructions are always there because they’re not erasable.
Flash: A special type of memory that works like both RAM and ROM. You can write information to flash memory, like you can with RAM, but that information isn’t erased when the power is off, like it is with RAM.
Reference:
2010-03-17
AT32AP7 is dead
He browsed the attached CD and surprisedly found that almost half doc introduced another series AT32AP7***. Maybe it is a parent series of AT32UC3, it is first guess of Max. After googling for some time, he realized that the AT32AT7 is dead and not recommanded for new design.
An important lesson: check the homepage of vender at first, which status is your chip, before you are going to use it.
References:
2010-03-16
AVR vs ARM
MIPS and DMIPS
DMIPS = Dhrystone MIPS
Dhrystone is a benchmark for the performance of CPU or micro-controller. See the citation
"Der Dhrystone-Test ist ein Benchmark für CPU-Leistung und Anwendungsprogramme. Er wurde in den achtziger Jahren entwickelt, später in die Programmiersprache Ada übersetzt und wird heute ausschließlich in der Programmiersprache "C" als industrieller Standard eingesetzt. Der Dhrystone-Code besteht im Wesentlichen aus einfacher integerer Arithmetik, aus String-Operationen, logischen Entscheidungen und Speicherzugriffen, wodurch die meisten universellen Computer-Anwendungen abgedeckt werden.
Bei dem Testergebnis wird die mittlere Zeit ermittelt, die ein Prozessor für viele Iterationen einer einzelnen Schleife benötigt. Die Dhrystone-Leistung wird in DMIPS oder Dhrystone MIPS/MHz angegeben.
Beim Dhrystone-Benchmark wird der getestete Computer mit einer Referenzmaschine verglichen. Als Referenzcomputer wurde die in den achtziger Jahren populäre VAX 11/780 von Digital Equipment herangezogen, der als Referenz 1 MIP zugeordnet wurde. Die VAX 11/780 erreichte 1757 Dhrystone pro Sekunde. Das bedeutet, dass alle Testergebnisse in "Dhrystone pro Sekunde" durch 1757 dividiert werden müssen, um einen Vergleichswert in MIPS zu erhalten. Ein Computer mit 120 MIPS (120 Dhrystone VAX MIPS) bedeutet also, dass dieser Computer 120 mal schneller arbeitet als die VAX 11/780... "
Reference:
http://www.itwissen.info/definition/lexikon/Dhrystone-MIPS-DMIPS.html
Knowledge Items for Embedded System
- you should study C well. Though some time we use assembly language, C is main and used mostly.
- you at least be familiar with a microcontroller, whatever a AVR MCU, or a ARM MCU. You should know it's basic principle and function, such as interrupt mode, clock management, power management etc.
- know some general devices' Operating mode and protocal, such SPI, USB, DMA, SDCard, etc. It's useful to develop application later, in different MCU, these devices' hardware maybe different, but there are similar principle and protocal.
- then you can study some things about RTOS, such as ucos, freertos, etc. It's useful to design some multitask and real-time projects.
But if you want to develop embedded application base on embedded OS, you can:
- study something about bootloader, it will help you to understand the startup of the system.
- choose a embedded OS to start, linux or WinCE, this depends on youself. But no matter which OS, you have to spend a lot of time to study.
- you'd better to know how to build a OS, and develop driver base on a OS.
Reference:
http://www.programmersheaven.com/mb/embedded/393622/394143/re-avr-or-arm-microcontroller-for-starting/?S=B20000