»óǰ ¾È³» ¹× ȯºÒ, ±³È¯, ¹è¼Û¹®ÀÇ | |
- °¡°Ô ÀüȹøÈ£ : | 1544-1900 |
- Àüȹ®ÀÇ ½Ã°£ : |
¿ÀÀü 9½ÃºÎÅÍ ¿ÀÈÄ 6½Ã±îÁö (¸ÅÁÖ ¿ù¿äÀÏ, È¿äÀÏ, ¼ö¿äÀÏ, ¸ñ¿äÀÏ, ±Ý¿äÀÏ, °øÈÞÀÏ Á¦¿Ü) |
- °¡°Ô À̸ÞÀÏ : | ink@kyobobook.co.kr |
- ÀÌ¿ë Åùèȸ»ç : | CJ´ëÇÑÅë¿î |
ÆÇ¸Å°¡°ÔÁ¤º¸ |
|
- »ç¾÷ÀÚ¸í : | (ÁÖ)±³º¸¹®°í |
- »ç¾÷ÀÚµî·Ï¹øÈ£ : | 102-81-11670 |
- Åë½ÅÆÇ¸Å¾÷½Å°í : | 01-0653 |
- Çö±Ý¿µ¼öÁõ : ¹ß±Þ°¡´É |
|
ÀüÈÁÖ¹® ¹× °áÁ¦¹®ÀÇ |
|
- ²ÉÇÇ´Â ¾ÆÄ§¸¶À» : | 1644-8422 |
°¡°Ô¿Í Á÷°Å·¡¸¦ ÇÏ½Ã¸é ²É¼ÛÀÌ Àû¸³ ¹× °¢Á¾ ÇýÅÿ¡¼ Á¦¿ÜµÇ°í, ¸¸ÀÏÀÇ ¹®Á¦°¡ ¹ß»ýÇÏ´Â °æ¿ì¿¡µµ ²É¸¶ÀÇ µµ¿òÀ» ¹ÞÀ¸½Ç ¼ö ¾ø½À´Ï´Ù. °¡°ÔÀÇ ºÎ´çÇÑ ¿ä±¸, ºÒ°øÁ¤ ÇàÀ§ µî¿¡ ´ëÇØ¼µµ ²É¸¶·Î Á÷Á¢ ÀüÈÁÖ¼¼¿ä. |
»ó¼¼Á¤º¸ | ±¸¸ÅÈıâ (0) | »óǰ Q&A (0) | ¹è¼Û/±³È¯/ȯºÒ ¾È³» |
Ã¥¼Ò°³¡º½Ã½ºÅÛ ÇÁ·Î±×·¡¹Ö ¿ÏÀüÁ¤º¹ 1(ARM CORTEX M3)¡»´Â ARM Cortex-M3 (STM32F10x) Å×½ºÆ® º¸µå¸¦ ÅëÇØ ½ÇÁ¦ °³¹ß¿¡ Ȱ¿ëÇÒ ¼ö Àִ åÀÌ´Ù. ARM Cortex-M3 ½Ã½ºÅÛ ÇÁ·Î±×·¥ °³¹ß ½ÇÀü °¡À̵å·Î, Cortex-M3 MCU¸¦ Ȱ¿ëÇÑ Æß¿þ¾î °³¹ß ½ÇÀü ÄÚµå Á¦°øÇÏ°í ´Ü¼ø Á¦¾î¿¡¼ ¹«¼±Åë½Å±îÁö ±¤¹üÀ§ÇÑ Ã¼ÇèÀ» ÇнÀÇÑ´Ù.
ÀúÀÚ¼Ò°³ÀúÀÚ : ¹Ú¼±È£
ÀúÀÚ ¹Ú¼±È£´Â ¼¿ï´ëÇб³ ÄÄÇ»ÅͰøÇаú Çлç
¼¿ï´ëÇб³ ÄÄÇ»ÅͰøÇаú ¼®»ç
Çö´ëÀüÀÚÁÖ½Äȸ»ç Áß´ëÇüÄÄÇ»ÅÍ °³¹ß
VKÁÖ½Äȸ»ç GSM ÇÚµåÆù °³¹ß
ÄھƷÎÁ÷ »ç¾÷º»ºÎÀå
Çö) ¾¾¾ËÁöÅ×Å©³î·¯Áö ´ëÇ¥ÀÌ»ç
³×À̹ö embeddedcrazyboys Ä«Æä Çʸí "¼³··¼³··"
ÀúÀÚ : ¿À¿µÈ¯
ÀúÀÚ ¿À¿µÈ¯Àº °í·Á´ëÇб³ Àü»ê°úÇаú Çлç
Çö´ëÀüÀÚÁÖ½Äȸ»ç CDMA ½Ã½ºÅÛ °³¹ß
ÇÑÅ×Å© ±âÁö±¹ RF Test Àåºñ °³¹ß
´ºÁ¨ÅÚ·¹ÄÞ GSM ÇÚµåÆù °³¹ß
ÄھƷÎÁ÷ AP FAE °³¹ß ÆÀÀå
Çö) ¾¾¾ËÁöÅ×Å©³î·¯Áö ¼ö¼®¿¬±¸¿ø
³×À̹ö embeddedcrazyboys Ä«Æä Çʸí "Ǫ¿ì"
ÁÖ¿ä °øÀú Àú¼ú
¸Á°í½ºÅ丮1, S3C2443/S3C6410/JTAG Embedded Board¸¦ ÅëÇÑARM9/ARM11 Embedded ȯ°æ üÇè
¸Á°í½ºÅ丮2, ½ÇÀü! ARM Cortex-M3 ½Ã½ºÅÛ ÇÁ·Î±×·¡¹Ö ¿ÏÀüÁ¤º¹ 1
¸Á°í½ºÅ丮3, ½ÇÀü! ARM Cortex-M3 ½Ã½ºÅÛ ÇÁ·Î±×·¡¹Ö ¿ÏÀüÁ¤º¹ 2
¸Á°í½ºÅ丮4, ½ÇÀü! Windows CE ½Ã½ºÅÛ ÇÁ·Î±×·¡¹Ö ¿ÏÀüÁ¤º¹
¸Á°í½ºÅ丮5, ½ÇÀü! ¾Èµå·ÎÀ̵å (Android) ½Ã½ºÅÛ ÇÁ·Î±×·¡¹Ö ¿ÏÀüÁ¤º¹
¸ñÂ÷¼¾ð3
¸ñÂ÷5
±×¸² ¸ñÂ÷15
1.Introduction19
1.1.ARM Architecture History19
1.1.1.ARM Ãʱâ Á¦Ç°19
1.1.2.ARM7TDMI FamilyºÎÅÍ ARM921
1.1.3.ARM10°ú ARM11 Family23
1.2.Cortex Family °³¿ä26
1.2.1.Cortex A-, R-, M-series26
1.2.2.ARM Licenses28
1.2.3.M0, M3, R4F, A8, A9 °³¿ä28
1.3.ARM7 Architecture¿Í ºñ±³¸¦ ÅëÇÑ Cortex-M3 Ư¡34
1.3.1.Harvard Architecture34
1.3.2.Thumb-2 Instruction Set35
1.3.3.Pipeline Branch Speculation36
1.3.4.Cortex-M3 interrupt37
2.Cortex-M3 Architecture39
2.1.Cortex-M3 block diagram39
2.2.Registers42
2.2.1.ÇÁ·Î¼¼¼ ¸ðµå¿Í Privilege levels42
2.2.2.½ºÅØ42
2.2.3.Cortex-M3 Core ·¹Áö½ºÅ͵é43
2.3.Thumb-2 Instruction Set Architecture (ISA)52
2.3.1.Architecture profile52
2.3.2.Thumb-252
2.4.Memory Map55
2.4.1.¹Ì¸® Á¤ÀÇµÈ Memory Map55
2.4.2.Bit banding56
2.4.3.¸Þ¸ð¸® Endian59
2.5.Exceptions and Interrupts60
2.5.1.Exception Á¾·ù60
2.5.2.Exception Priority & Nested ó¸®61
2.5.3.ARM7, ARM9°úÀÇ ºñ±³61
2.5.4.STM, LDM 󸮽ÃÀÇ Interrupt62
2.6.Nested Vectored Interrupt Controller63
2.6.1.NVIC Ư¡63
2.6.2.Tail chaining, late arrival, pop pre-emption65
2.7.±âŸ Ư¡68
3.STM32 CPU Ư¡69
3.1.Features69
3.2.STM32F103xx Device overview72
3.3.STM32F103xx block diagram74
3.4.Memory mapping75
3.5.Booting mode78
3.6.Low-power modes80
3.7.Core peripherals81
3.7.1.Nested vectored interrupt controller (NVIC)81
3.7.2.System control block (SCB)83
3.7.3.SysTick timer (STK)84
4.Hardware Manual85
4.1.Cortex-M3 ±âº» EVB (Mango-M32) Çϵå¿þ¾î ¸Å´º¾ó85
4.1.1.Mango-M32 ±¸Á¶86
4.1.2.Mango-M32 ºÎǰ¸é ¼³¸í87
4.1.3.Part #1 ? STM32F103xx MCU88
4.1.4.Part #2 ? USB Connector89
4.1.5.Part #3, #4, #5 ? RS232C90
4.1.6.Part #6 ? 7 Segment LED90
4.1.7.Part #7 ? BOOT Select Switch92
4.1.8.Part #8, #9, #10 ? WKUP, USER, RESET ¹öư93
4.1.9.Part #11, #12 ? 12MHz, 32.768KHz Crystal93
4.1.10.Part #13 ? Power LED93
4.1.11.Part #14 ? Indicator LEDs93
4.1.12.Part #15 ? Expansion Connector94
4.1.13.Part #16 ? JTAG Ä¿³ØÅÍ95
4.2.Cortex-M3 + ZigBee EVB (Mango-Z1) Çϵå¿þ¾î ¸Å´º¾ó96
4.2.1.Mango-z1 ºÎǰ ¼³¸í97
4.2.2.Mango-z1 º¸µå ±¸Á¶µµ97
4.2.3.Mango-z1 º¸µå Çϵå¿þ¾î99
4.2.4.User Keys103
4.2.5.Indicator LEDs105
4.2.6.USB107
4.2.7.RS-232C109
4.2.8.Power112
4.2.9.RF Transceiver113
4.2.10.2.4GHz RF114
4.2.11.Expansion Slot115
4.2.12.JTAG116
5.°³¹ß ȯ°æ ±¸Ãà117
5.1.IAR workbench ȯ°æ ±¸Ãà117
5.1.1.Evaluation version ´Ù¿î·Îµå117
5.1.2.IAR Embedded Workbench for ARM v.5.2 ¼³Ä¡118
5.2.RIDE7 ȯ°æ ±¸Ãà120
5.2.1.RIDE7 ´Ù¿î·Îµå120
5.2.2.Ride7_7.30.10.0169.exe ¼³Ä¡120
5.2.3.RKit-ARM_1.26.10.0130.exe ¼³Ä¡122
5.2.4.RIDE7 ÇÁ·ÎÁ§Æ® ±¸¼º ¿¹Á¦123
5.3.STM Flash Loader ¼³Ä¡124
5.4.Å͹̳ΠÇÁ·Î±×·¥ ¼³Ä¡128
5.5.Âü°í »çÇ× - Error »çÇ× ´ëó ¹æ¹ý131
5.5.1.File Open error - Fatal Error[Pe005]131
5.5.2."assert_param" error - Error[Li005]132
5.5.3.ºôµå Warning [Pa082]133
6.Cortex-M3 ±âº» Firmware ÇÁ·Î±×·¡¹Ö135
6.1.LED¸¦ ÄÑ º¸ÀÚ ? ¹«ÀÛÁ¤ µû¶óÇϱâ135
6.1.1.Æú´õ ±¸Á¶ ¼³Á¤135
6.1.2.IAR ȯ°æ ±¸¼º ¹× ºôµå136
6.1.3.RIDE7 ȯ°æ ±¸¼º ¹× ºôµå144
6.1.4.Flash Download151
6.1.5.½ÇÇà157
6.2.ÃÖÃÊ ÇÁ·Î±×·¥ ¼³¸í159
6.2.1.LED ȸ·Îµµ ¹× Çϵå¿þ¾î ¼³¸í159
6.2.2.(*(volatile unsigned *)0x40021018) |= 0x8160
6.2.3.(*(volatile unsigned *)0x40010C04) |= 0x10165
6.3.LED¸¦ ²¨ º¸ÀÚ171
6.3.1.LED ȸ·Îµµ ºÐ¼®171
6.3.2.¼Ò½º ÆÄÀÏ Æú´õ À§Ä¡172
6.3.3.main.c º¯°æ »çÇ×172
6.3.4.¼öÇà °á°ú173
6.3.5.delay_int_count173
6.3.6.GPIO Set Reset ·¹Áö½ºÅÍ174
6.3.7.Port bit Reset register174
6.3.8.Port bit Set Reset register175
6.3.9.delay ½Ã°£¿¡ °üÇÑ ¼³¸í176
6.4.1ÃÊ delay_int_count ±¸ÇöÇϱâ177
6.4.1.1ÃÊ delayÀÇ Á¤È®µµ177
6.4.2.delay ÇÔ¼ö¸¦ ¸¸µå´Â ¹æ¹ý177
6.4.3.CPU Clock¿¡ °üÇÏ¿©178
6.4.4.Reset and clock control (RCC)179
6.4.5.delay_int_count ¾î¼Àºí¸® ÄÚµå181
6.4.6.1ÃÊ delay_int_count °á·Ð183
6.5.LED ¸ðµÎ ±ôºý°Å¸®±â 184
6.5.1.¼Ò½º ÆÄÀÏ Æú´õ À§Ä¡184
6.5.2.LED ȸ·Îµµ ¹× À§Ä¡ ¼³¸í184
6.5.3.main.c º¯°æ »çÇ×185
6.5.4.GPIOB_CRL ·¹Áö½ºÅÍ ¼³Á¤186
6.5.5.GPIOx_BRR GPIOx_BSRR ·¹Áö½ºÅÍ ¼³Á¤187
6.5.6.¼öÇà °á°ú188
6.6.°í±Þ½º·¯¿î ÄÚµùÀ» ÇÏÀÚ 1190
6.6.1.¼Ò½º ÆÄÀÏ Æú´õ À§Ä¡190
6.6.2.platform_config.h ±¸Çö - defineÀÇ È°¿ë 1190
6.6.3.platform_config.h ±¸Çö - defineÀÇ È°¿ë 2193
6.6.4.GPIO_B_Output_Init ÇÔ¼ö ±¸Çö196
6.6.5.led.c ±¸Çö198
6.6.6.IAR & RIDE7 ºôµå201
6.6.7.½ÇÇà °á°ú202
6.7.°í±Þ½º·¯¿î ÄÚµùÀ» ÇÏÀÚ 2203
6.7.1.¼Ò½º ÆÄÀÏ Æú´õ À§Ä¡203
6.7.2.·¹Áö½ºÅÍÀÇ Address Offset - »ó´ë ÁÖ¼Ò ÁöÁ¤ ¹æ½Ä203
6.7.3.»õ·Î¿î typedef - RCC_TypeDef Á¤ÀÇ205
6.7.4.GPIO_TypeDef Á¤ÀÇ208
6.7.5.»ó´ë ÁÖ¼Ò ÁöÁ¤ ¹æ½Ä °á·Ð212
6.8.Key°¡ ´¸° °Í ¾Ë¾ÆÃ¤±â213
6.8.1.¼Ò½º ÆÄÀÏ Æú´õ À§Ä¡213
6.8.2.ȸ·Îµµ ¹× º¸µå ±¸¼º ºÐ¼®213
6.8.3.platform_config.h º¯°æ »çÇ×215
6.8.4.GPIO Input mode ¼³Á¤216
6.8.5.Key Input °ª Read - GPIO Read ºÐ¼®218
6.8.6.key.c ºÐ¼®220
6.8.7.ºôµå ¹× ½ÇÇà222
6.9.Hello World¸¦ Âï¾îº¸ÀÚ224
6.9.1.IAR¿¡¼ startup_stm32f10x_md.s Ãß°¡224
6.9.2.GPIO_Init ºÐ¼®224
6.9.3.UART ÀϹÝ231
6.9.4.ȸ·Îµµ ºÐ¼®234
6.9.5.USART macro ¹× typedef ºÐ¼®235
6.9.6.main ÇÔ¼ö °ËÅä236
6.9.7.GPIO_Configuration237
6.9.8.USART1_Init238
6.9.9.USART_Init ÇÔ¼ö ¼³¸í244
6.9.10.UART Ãâ·Â ÇÔ¼ö ±¸Çö250
6.9.11.½ÇÇà °á°ú254
6.10.printf¸¦ Ȱ¿ëÇÏÀÚ255
6.10.1.semi-hosting255
6.10.2.main.c º¯°æ»çÇ×259
6.10.3.½ÇÇà °á°ú261
6.11.Get Character & ¸Þ´º ±¸¼º262
6.11.1.USART_FLAG_RXNE262
6.11.2.USART_ReceiveData ±¸Çö263
6.11.3.USART_GetCharacter ±¸Çö263
6.11.4.¸Þ´º ±¸¼º265
6.11.5.¼öÇà °á°ú267
6.12.7-Segment Control268
6.12.1.ȸ·Îµµ ºÐ¼®268
6.12.2.7-segment °³¿ä268
6.12.3.GPIO ¼³Á¤ ¹× ±âº» ÇÔ¼ö ±¸Çö269
6.12.4.Seven_Segment_Test ±¸Çö271
6.12.5.7-segment·Î ¼ýÀÚ¸¦ Ç¥ÇöÇØ º¸ÀÚ272
6.12.6.½ÇÇà °á°ú275
6.13.Clock Control276
6.13.1.ȸ·Îµµ ¹× Ŭ·° ¼Ò½º ºÐ¼®276
6.13.2.Enable HSE277
6.13.3.Flash access Latency ¼³Á¤278
6.13.4.HCLK, PCLK1, PCLK2 ¼³Á¤280
6.13.5.PLL ¼³Á¤282
6.13.6.PLL ON284
6.13.7.System clock switch ¼³Á¤285
6.13.8.¼Ò½º ÄÚµå º¯°æ »çÇ× ¼³¸í286
6.13.9.LED Test ¼º´É ºñ±³287
6.14.RCC_GetClocksFreq ±¸Çö289
6.14.1.RCC_ClocksTypeDef Á¤ÀÇ289
6.14.2.SYSCLK_Frequency ±¸Çϱâ289
6.14.3.HCLK_Frequency ±¸Çϱâ292
6.14.4.PCLK1_Frequency ±¸Çϱâ293
6.14.5.PCLK2_Frequency ±¸Çϱâ294
6.14.6.ADCCLK_Frequency ±¸Çϱâ295
6.14.7.System_Information º¯°æ »çÇ×295
6.14.8.¼öÇà °á°ú296
6.15.Á¤È®ÇÑ 1ÃÊ Delay ±¸Çö297
6.15.1.Cortex-M3 Exception °³¿ä297
6.15.2.STM32F10xxx Vector table300
6.15.3.System Control Space ºÐ¼®303
6.15.4.NVIC Vector Table ¼³Á¤305
6.15.5.SysTick Configuration307
6.15.6.Exception priority311
6.15.7.NVIC_SetPriority ¼³Á¤313
6.15.8.SysTick interrupt handler ¼³Á¤317
6.15.9.½ÇÇà °á°ú319
6.16.Key Interrupt ó¸®320
6.16.1.½ÇÇà °á°ú320
6.16.2.External interrupt/event controller (EXTI) °³¿ä321
6.16.3.NVIC Configuration ºÐ¼®324
6.16.4.EXTI Configuration335
6.16.5.EXTI0_IRQHandler342
7.Cortex-M3 ¹× 802.15.4 ZigBee Åë½Å ÇÁ·Î±×·¡¹Ö345
7.1.Hello World345
7.1.1.STMicroelectronics ¶óÀ̺귯¸® Àû¿ë345
7.1.2.Hello World ºôµå - IAR case348
7.1.3.Hello World ºôµå - RIDE7 case352
7.1.4.¼Ò½º ºÐ¼®353
7.1.5.¼öÇà °á°ú357
7.1.6.¶óÀ̺귯¸® Æú´õ À§Ä¡ º¯°æ357
7.2.¸Þ´º ±¸¼º ¹× LED & Key Control360
7.2.1.USE_FULL_ASSERT - debug ºÎºÐ360
7.2.2.¼Ò½º ÄÚµå º¯°æ »çÇ×365
7.2.3.RCC Get Clocks Frequency367
7.3.Clock Control369
7.3.1.¼Ò½º º¯°æ »çÇ×369
7.3.2.½ÇÇà °á°ú371
7.3.3.System Init ÇÔ¼ö ¼³¸í372
7.3.4.SetSysClock() ÇÔ¼ö ¼³¸í376
7.3.5.SetSysClockTo72() ÇÔ¼ö ¼³¸í376
7.4.Á¤È®ÇÑ 1ÃÊ Delay ±¸Çö ¹× Key Interrupt ó¸®379
7.4.1.ºôµå ȯ°æ Ãß°¡ ÆÄÀϵé379
7.4.2.Interrupt Handler ±¸Çö379
7.4.3.¼Ò½º º¯°æ »çÇ×380
7.4.4.½ÇÇà °á°ú383
7.5.In-Application Programming (IAP) - BootLoader384
7.5.1.AN2557 ´Ù¿î·Îµå384
7.5.2.IAP °³¿ä385
7.5.3.IAP code °³¿ä386
7.5.4.IAP code ¾Ë°í¸®Áò387
7.5.5.STM ¶óÀ̺귯¸® »ç¿ë389
7.5.6.IAP project ¼Ò½º º¯°æ ³»¿ª390
7.5.7.IAP ½ÇÇà399
7.5.8.User Program ¸¸µé±â 1 - binary_template399
7.5.9.IAP YModem Download403
7.5.10.User Program ¸¸µé±â 2 - Z1.Src004.KeyInterrupt406
7.6.SPI Åë½ÅÀ» ÀÌ¿ë CC2520 Chip ID Àбâ409
7.6.1.CC2520 2.4 GHz RF transceiver410
7.6.2.CC2520 °ü·Ã ÀÚ·á ´Ù¿î·Îµå410
7.6.3.¸Á°í Z1 ȸ·Îµµ ºÐ¼®412
7.6.4.SPI (Serial Peripheral Interface) Åë½Å414
7.6.5.CC2520 ·¹Áö½ºÅÍ ÃʱâÈ418
7.6.6.ZigBee_Test ÇÁ·Î±×·¥ ¼³¸í428
7.6.7.SPI ÃʱâÈ428
7.6.8.CC2520 RF ÃʱâÈ433
7.6.9.Get Chip ID & Version440
7.6.10.ºôµå ¹× ½ÇÇà °á°ú442
7.7.One byte RF Åë½Å ±¸Çö444
7.7.1.·¹Áö½ºÅÍ °ª Ãâ·Â ÇÔ¼ö ±¸Çö444
7.7.2.RF Channel ¼³Á¤446
7.7.3.PAN (Personal Area Network) ID & Short Address ¼³Á¤448
7.7.4.GPIO 0 Exception ¼³Á¤450
7.7.5.Ãʱ⠷¹Áö½ºÅÍ ¼³Á¤ °ª º¯°æ »çÇ×455
7.7.6.appSwitch Tx application ¼³¸í456
7.7.7.appLight Rx application ¼³¸í457
7.7.8.basicRfRxFrmDoneIsr() ÇÔ¼ö ¼³¸í458
7.7.9.½ÇÇà °á°ú459
7.8.Multi-Packet Transmit Åë½Å ±¸Çö462
7.8.1.½ÇÇà °á°ú462
7.8.2.Àü¼Û ÆÐŶ & PER °è»ê structure ±¸Á¶463
7.8.3.perTest_appTransmitter ¼³¸í464
7.8.4.perTest_appReceiver ¼³¸í468
7.9.USB HID Demo471
7.9.1.STM ¶óÀ̺귯¸® ´Ù¿î·Îµå ¹× Æú´õ ¼³¸í471
7.9.2.USB HID Demonstrator ´Ù¿î·Îµå ¹× ¼³Ä¡472
7.9.3.º¸µå ±¸µ¿ ¹× HID ½ÃÇè °á°ú473
7.9.4.USB ºÎºÐ ȸ·Î ºÐ¼®480
7.9.5.EXTI line 18 USB Wakeup event482
7.9.6.STM32 USB interface484
7.9.7.STM32 USB ·¹Áö½ºÅÍ ¼³¸í485
7.9.8.·¹Áö½ºÅÍ ¼³Á¤ °ü·Ã ¿¹497
8.RTOS porting503
8.1.FreeRTOS porting503
8.1.1.FreeRTOS ¼Ò½º ´Ù¿î·Îµå503
8.1.2.FreeRTOS ÀÏ¹Ý ¼³¸í504
8.1.3.FreeRTOS µð·ºÅ丮 ¹× ÆÄÀÏ ¼³¸í506
8.1.4.MANGO-Z1 Æ÷ÆÃ - Clock ¼³Á¤510
8.1.5.MANGO-Z1 Æ÷ÆÃ - GPIO ¼³Á¤511
8.1.6.MANGO-Z1 Æ÷ÆÃ - main() ÇÔ¼ö º¯°æ514
8.1.7.½ÇÇà °á°ú519
8.1.8.Âü°í »çÇ× - Compiler option521
8.1.9.FreeRTOS ¿¬±¸ - Overview523
8.1.10.FreeRTOS ¿¬±¸ - portTASK_FUNCTION526
8.1.11.FreeRTOS ¿¬±¸ - task state527
8.1.12.FreeRTOS ¿¬±¸ - Inter-task Communication528
8.2.uC/OS-II porting538
8.2.1.uC/OS-II ¼Ò½º ´Ù¿î·Îµå539
8.2.2.uC/OS-II ¼Ò½ºµé°£ °ü°è542
8.2.3.WRITE_REG, READ_REG °ü·Ã ¼öÁ¤543
8.2.4.uC/OS-II µð·ºÅ丮 ±¸Á¶544
8.2.5.°³¹ß ȯ°æ ¼³Á¤ ¹× ºôµå545
8.2.6.probe_com_cfg.h º¯°æ »çÇ×546
8.2.7.Ŭ·° ¼³Á¤ º¯°æ »çÇ×548
8.2.8.LED °ü·Ã ¼öÁ¤ »çÇ× ¼³¸í548
8.2.9.task »ý¼º ÇÔ¼ö OSTaskCreateExt ¼³¸í552
8.2.10.LED task »ý¼º ¹× ½ÇÇà °á°ú557
8.2.11.uC/OS-II ¿¬±¸ - tick ¼³Á¤562
8.2.12.uC/OS-II ¿¬±¸ - Critical Sections564
8.2.13.uC/OS-II ¿¬±¸ - task state570
8.2.14.uC/OS-II ¿¬±¸ - Scheduling Lock/Unlock, Task Suspend/Resume571
8.2.15.uC/OS-II ¿¬±¸ - Semaphore571
8.2.16.uC/OS-II ¿¬±¸ - Message Mailbox574
Appendix577
Âü°í ¹®¼577
Âü°í Sites577
Mango-M32 ȸ·Îµµ 1578
Mango-M32 ȸ·Îµµ 2579
Mango-M32 ȸ·Îµµ 3580
Mango-M32 ȸ·Îµµ 4581
Mango-Z1 ȸ·Îµµ 1583
Mango-Z1 ȸ·Îµµ 2584
Mango-Z1 ȸ·Îµµ 3585
Mango-Z1 ȸ·Îµµ 4586
»öÀÎ589
ÃâÆÇ»ç ¼ÆòARM Cortex-M3 (STM32F10x) Å×½ºÆ® º¸µå¸¦ ÅëÇØ
½ÇÁ¦ °³¹ß¿¡ Ȱ¿ëÇÒ ¼ö ÀÖ´Â °¡Àå ¿Ïº®ÇÑ Áöħ¼
ARM Cortex-M3 ½Ã½ºÅÛ ÇÁ·Î±×·¥ °³¹ß ½ÇÀü °¡À̵å
ÀÔ¹®¿¡¼ Àü¹®°¡ ¼öÁرîÁö Ä£ÀýÇÑ ¾È³»¼
Cortex-M3 MCU¸¦ Ȱ¿ëÇÑ Æß¿þ¾î °³¹ß ½ÇÀü ÄÚµå Á¦°ø
´Ü¼ø Á¦¾î¿¡¼ ¹«¼±Åë½Å±îÁö ±¤¹üÀ§ÇÑ Ã¼Çè
FreeRTOS, uC/OS-II µî ÀÓº£µðµå Real-Time OS Æ÷ÆÃ
Cortex-M3 ½Ã½ºÅÛ °³¹ßÀÚÀÇ °í¹ÎÀ» Çѹø¿¡ ÇØ°áÇÏ´Â
¿Ïº®! ARM Cortex-M3 ½ÇÀü ¹ÙÀ̺í |
±³È¯ ¹× ȯºÒ °¡´É |
»óǰ¿¡ ¹®Á¦°¡ ÀÖÀ» °æ¿ì |
1) »óǰÀÌ Ç¥½Ã/±¤°íµÈ ³»¿ë°ú ´Ù¸£°Å³ª ºÒ·®(ºÎÆÐ, º¯Áú, ÆÄ¼Õ, Ç¥±â¿À·ù, À̹°È¥ÀÔ, Áß·®¹Ì´Þ)ÀÌ ¹ß»ýÇÑ °æ¿ì - ½Å¼±½Äǰ, ³ÃÀå½Äǰ, ³Ãµ¿½Äǰ : ¼ö·ÉÀÏ ´ÙÀ½³¯±îÁö ½Åû - ±âŸ »óǰ : ¼ö·ÉÀϷκÎÅÍ 30ÀÏ À̳», ±× »ç½ÇÀ» ¾È ³¯ ¶Ç´Â ¾Ë ¼ö ÀÖ¾ú´ø ³¯·ÎºÎÅÍ 30ÀÏ À̳» ½Åû 2) ±³È¯ ¹× ȯºÒ½Åû ½Ã ÆÇ¸ÅÀÚ´Â »óǰÀÇ »óŸ¦ È®ÀÎÇÒ ¼ö ÀÖ´Â »çÁøÀ» ¿äûÇÒ ¼ö ÀÖÀ¸¸ç »óǰÀÇ ¹®Á¦ Á¤µµ¿¡ µû¶ó Àç¹è¼Û, ÀϺÎȯºÒ, ÀüüȯºÒÀÌ ÁøÇàµË´Ï´Ù. ¹Ýǰ¿¡ µû¸¥ ºñ¿ëÀº ÆÇ¸ÅÀÚ ºÎ´ãÀ̸ç ȯºÒÀº ¹ÝǰµµÂøÀϷκÎÅÍ ¿µ¾÷ÀÏ ±âÁØ 3ÀÏ À̳»¿¡ ¿Ï·áµË´Ï´Ù. |
´Ü¼øº¯½É ¹× ÁÖ¹®Âø¿ÀÀÇ °æ¿ì |
1) ½Å¼±½Äǰ, ³ÃÀå½Äǰ, ³Ãµ¿½Äǰ ÀçÆÇ¸Å°¡ ¾î·Á¿î »óǰÀÇ Æ¯¼º»ó, ±³È¯ ¹× ȯºÒÀÌ ¾î·Æ½À´Ï´Ù. 2) ÈÀåǰ ÇǺΠƮ·¯ºí ¹ß»ý ½Ã Àü¹®ÀÇ Áø´Ü¼ ¹× ¼Ò°ß¼¸¦ Á¦ÃâÇϽøé ȯºÒ °¡´ÉÇÕ´Ï´Ù. ÀÌ °æ¿ì Á¦¹Ýºñ¿ëÀº ¼ÒºñÀÚ ºÎ´ãÀ̸ç, ¹è¼Ûºñ´Â ÆÇ¸ÅÀÚ°¡ ºÎ´ãÇÕ´Ï´Ù. ÇØ´ç ÈÀåǰ°ú ÇǺΠƮ·¯ºí°úÀÇ »ó´çÇÑ Àΰú°ü°è°¡ ÀÎÁ¤µÇ´Â °æ¿ì ¶Ç´Â Áúȯġ·á ¸ñÀûÀÇ °æ¿ì¿¡´Â Áø´Ü¼ ¹ß±Þºñ¿ëÀ» ÆÇ¸ÅÀÚ°¡ ºÎ´ãÇÕ´Ï´Ù. 3) ±âŸ »óǰ ¼ö·ÉÀϷκÎÅÍ 7ÀÏ À̳» ½Åû, ¿Õº¹¹è¼Ûºñ´Â ¼ÒºñÀÚ ºÎ´ã 4) ¸ð´ÏÅÍ ÇØ»óµµÀÇ Â÷ÀÌ·Î »ö»óÀ̳ª À̹ÌÁö°¡ ´Ù¸¥ °æ¿ì ´Ü¼øº¯½É¿¡ ÀÇÇÑ ±³È¯ ¹× ȯºÒÀÌ Á¦ÇÑµÉ ¼ö ÀÖ½À´Ï´Ù. |
|
±³È¯ ¹× ȯºÒ ºÒ°¡ |
1) ½Åû±âÇÑÀÌ Áö³ °æ¿ì 2) ¼ÒºñÀÚÀÇ °ú½Ç·Î ÀÎÇØ »óǰ ¹× ±¸¼ºÇ°ÀÇ Àüü ¶Ç´Â ÀϺΰ¡ ¾ø¾îÁö°Å³ª ÈѼÕ, ¿À¿°µÇ¾úÀ» °æ¿ì 3) °³ºÀÇÏ¿© ÀÌ¹Ì ¼·ÃëÇÏ¿´°Å³ª »ç¿ë(Âø¿ë ¹× ¼³Ä¡ Æ÷ÇÔ)ÇØ »óǰ ¹× ±¸¼ºÇ°ÀÇ °¡Ä¡°¡ ¼Õ»óµÈ °æ¿ì 4) ½Ã°£ÀÌ °æ°úÇÏ¿© »óǰÀÇ °¡Ä¡°¡ ÇöÀúÈ÷ °¨¼ÒÇÑ °æ¿ì 5) »ó¼¼Á¤º¸ ¶Ç´Â »ç¿ë¼³¸í¼¿¡ ¾È³»µÈ ÁÖÀÇ»çÇ× ¹× º¸°ü¹æ¹ýÀ» ÁöŰÁö ¾ÊÀº °æ¿ì 6) »çÀü¿¹¾à ¶Ç´Â ÁÖ¹®Á¦ÀÛÀ¸·Î ÅëÇØ ¼ÒºñÀÚÀÇ ÁÖ¹®¿¡ µû¶ó °³º°ÀûÀ¸·Î »ý»êµÇ´Â »óǰÀÌ ÀÌ¹Ì Á¦ÀÛÁøÇàµÈ °æ¿ì 7) º¹Á¦°¡ °¡´ÉÇÑ »óǰ µîÀÇ Æ÷ÀåÀ» ÈѼÕÇÑ °æ¿ì 8) ¸À, Çâ, »ö µî ´Ü¼ø ±âÈ£Â÷ÀÌ¿¡ ÀÇÇÑ °æ¿ì |