110 likes | 210 Views
Implementation of Embedded OS. Lab1 Cortex-M3 Programming. Goal. Source : http://www.arm.com/images/Cortex_M3_large.png. Learn how to write programs for the ARM Cortex-M3 (ARMv7-M) architecture. Environment. Host System Windows XP Build System VirtualBox + Ubuntu 8.04 Target System
E N D
Implementation of Embedded OS Lab1 Cortex-M3 Programming
Goal Source: http://www.arm.com/images/Cortex_M3_large.png Learn how to write programs for the ARM Cortex-M3 (ARMv7-M) architecture. /11
Environment • Host System • Windows XP • Build System • VirtualBox + Ubuntu 8.04 • Target System • PTK development board (STM32F207) • Software • Documentation & examples • PTK_Examples.zip • μC/OS-III source codes • KRN-K3XX-000000.zip • IAR Embedded Workbench • Installed already • You can download them from RSWiki IEOS Course Software. /11
Introduction /11 • Cortex-M3 processors are a family of 32-bit ARM-based processors for highly deterministic real-time applications. • It implements the ARMv7-M architecture. • Nested Vectored Interrupt Controller (NVIC), Memory Protection Unit (MPU), … • It has 3-stage pipeline supporting Thumb/Thumb-2 ISA. • STM32F207 is a SoC consisting of a Cortex-M3 Core, built-in flash storage, and many other peripherals. • The core can run up to 120MHz. • The on-chip memory includes a flash of 256KB and a SRAM of 128KB.
Memory Mapping Block 7 Internals 0xE000_0000 Block 6 Not Used 0xC000_0000 Block 5 FSMC Registers 0xA000_0000 Block 4 FSMC Bank 3/4 0x8000_0000 Block 3 FSMC Bank 1/2 0x6000_0000 Block 2 Peripherals 0x4000_0000 Block 1 SRAM 0x2000_0000 Block 0 Code 0x0000_0000 /11 • The address space of STM32F207 is split into eight 512MB blocks. • Block 0 maps the flash memory. • Block 1 maps the main memory. • Block 2 maps MMIO for peripherals. • Block 3/4 maps external devices using static memory interface. • Block 5 maps control registers of the flexible static memory controller (FSMC). • Block 7 maps internal registers of the processor core.
Connecting PTK Development Board RS-232 (COM Port) JTAG Debugger Temperature Sensor /11
IAR Embedded Workbench /11 It is a commercial IDE for ARM-based SoCs.
Setting up Examples /11 • Step 1: decompress the examples PTK_Examples.zip. • Step 2: decompress KRN-K3XX-000000.zip. • Step 3: copy the folder Software in Micrium to PTK_Examples/ePBB/Libraries/OS_uCOS-III/Micrium-V30x. • Please do not replace any existing files.
Building and Running the UART Example (1/2) /11 • Step 1: open the following workspace in IAR Embedded Workbench IDE. • PTK_Examples/ePBB/Applications/Projects/PTK-STM32F207/EWARM-V6/OS_uCOS-III/base_uart/demo.eww • Step 2: compile the project by clicking the button “Make”. • Step 3: download the program to the target by clicking the button “Download and Debug”.
Building and Running the UART Example (2/2) /11 • Step 4: open the serial console (putty or pietty). • Please set baud rate to 115200bps. • Step 5: press the key “F5” to continue the execution. • You will see the message “Hello World!!!” on the console.
Lab Requirements /11 • Please create a task in μC/OS-III to read the value of current temperature from the temperature sensor and display it on both the serial console and the LCD screen. • Hints • The documentation of these examples can be found at PTK_Examples/ePBB/Documentations. • You need to initialize the LCD device by invoking “ili9325_gui_config” in the function “platform_board_init_hook”.