♧ STM32F0 > [STM32F0] [IAR] 5. 폴더 구성 변경 및 Workspace 수정

인기검색어 > 아두이노 센서 ATMEGA128

최신글 질문게시판 동영상강좌 가입하기

▼ BASIC4MCU 후원업체 신제품 정보 ▼

▲ BASIC4MCU 후원업체 신제품 정보 ▲

BASIC4MCU > ♧ STM32F0

◆F0x0 Value Line | [STM32F0] [IAR] 5. 폴더 구성 변경 및 Workspace 수정

페이지 정보

작성자 master 작성일18-02-23 21:23 조회2,390회 댓글0건

본문

1904378426_7pUeHLBw_25EC25A0259C25EB25AA25A9_25EC2597258625EC259D258C.png3Ftype3Dw740

라이브러리 폴더가 많아서 첫번째 폴더가 복잡해지므로
하위 폴더를 추가했습니다.

D:\STM32_IAR
첫번째 폴더는 경로(path) 지정을 위해서 루트 디렉토리에 구성 했습니다.

Stm32_Discovery
Stm32_EVAL
Stm32_Nucleo
위 3개의 폴더는 F0 만 들어있는 것이라서 파일(및 폴더) 갯수가 많지 않지만
F1,F2,F3... 등등의 파일이 추가되면 갯수가 늘어나게 되어서 폴더를 분리 했습니다.
//



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
<?xml version="1.0" encoding="iso-8859-1"?>
 
  2</fileVersion>
  
    STM32F030R8-Nucleo</name>  ARM</name> </toolchain> 1</debug>
    
      General</name> 3</archiveVersion>
      
        24</version> 1</wantNonLocal> 1</debug>
            ExePath</name>                     Out</state>    </option>    //
            ObjPath</name>                     Out</state>    </option>    //
            ListPath</name>                    Out</state>    </option>    //
            GEndianMode</name>                 0</state>      </option>
            Input variant</name>               3</version>  6</state>    </option>
            Input description</name>           No specifier n, no float nor long long, no scan set, no assignment suppressing.</state> </option>
            Output variant</name>              2</version>  5</state> </option>
            Output description</name>          No specifier a, A, no specifier n, no float nor long long.</state> </option>
            GOutputBinary</name>               0</state>     </option>
            OGCoreOrChip</name>                1</state>     </option>
            GRuntimeLibSelect</name>           0</version> 2</state> </option>
            GRuntimeLibSelectSlave</name>      0</version> 2</state> </option>
            RTDescription</name>               Use the full configuration of the C/C++ runtime library. Full locale interface, C locale, file descriptor support, multibytes in printf and scanf, and hex floats in strtod.</state> </option>
            OGProductVersion</name>            4.41A</state> </option>
            OGLastSavedByProductVersion</name> 7.50.2.10499</state> </option>
            GeneralEnableMisra</name>          0</state>     </option>
            GeneralMisraVerbose</name>         0</state>     </option>
            OGChipSelectEditMenu</name>        STM32F030x8    ST STM32F030x8</state> </option>
            GenLowLevelInterface</name>        1</state>     </option>
            GEndianModeBE</name>               1</state>     </option>
            OGBufferedTerminalOutput</name>    0</state>     </option>
            GenStdoutInterface</name>          0</state>     </option>
            GeneralMisraRules98</name>         0</version> 1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>               </option>
            GeneralMisraVer</name>             0</state>     </option>
            GeneralMisraRules04</name>         0</version> 011111111111111110111111111111011111111111111011110100111111111111111111111111111111111111111111101111111111111011111111111111111111111111111</state> </option>
            RTConfigPath2</name>               $TOOLKIT_DIR$\INC\c\DLib_Config_Full.h</state> </option>
            GBECoreSlave</name>                22</version> 34</state> </option>
            OGUseCmsis</name>                  1</state>      </option>
            OGUseCmsisDspLib</name>            0</state>      </option>
            GRuntimeLibThreads</name>          0</state>      </option>
            CoreVariant</name>                 22</version> 34</state>      </option>
            GFPUDeviceSlave</name>             STM32F030x8    ST STM32F030x8</state> </option>
            FPU2</name>                        0</version>  0</state>       </option>
            NrRegs</name>                      0</version>  0</state>       </option>
            NEON</name>                        0</state>      </option>
            GFPUCoreSlave2</name>              22</version> 34</state>      </option>
      </data>
    </settings>
    
      ICCARM</name> 2</archiveVersion>
      
        31</version> 1</wantNonLocal> 1</debug>
            CCOptimizationNoSizeConstraints</name>                    0</state> </option>
            CCDefines</name>            STM32F030x8</state>    USE_HAL_DRIVER</state> USE_STM32F0XX_NUCLEO</state> </option>
            CCPreprocFile</name>        0</state>    </option>
            CCPreprocComments</name>    0</state>    </option>
            CCPreprocLine</name>        0</state>    </option>
            CCListCFile</name>          0</state>    </option>
            CCListCMnemonics</name>     0</state>    </option>
            CCListCMessages</name>      0</state>    </option>
            CCListAssFile</name>        0</state>    </option>
            CCListAssSource</name>      0</state>    </option>
            CCEnableRemarks</name>      0</state>    </option>
            CCDiagSuppress</name>       </state>     </option>
            CCDiagRemark</name>         </state>     </option>
            CCDiagWarning</name>        </state>     </option>
            CCDiagError</name>          </state>     </option>
            CCObjPrefix</name>          1</state>    </option>
            CCAllowList</name>          1</version>    11111110</state> </option>
            CCDebugInfo</name>          1</state>    </option>
            IEndianMode</name>          1</state>    </option>
            IProcessor</name>           1</state>    </option>
            IExtraOptionsCheck</name>   0</state>    </option>
            IExtraOptions</name>        </state>     </option>
            CCLangConformance</name>    0</state>    </option>
            CCSignedPlainChar</name>    1</state>    </option>
            CCRequirePrototypes</name>  1</state>    </option>
            CCMultibyteSupport</name>   0</state>    </option>
            CCDiagWarnAreErr</name>      0</state>   </option>
            CCCompilerRuntimeInfo</name> 0</state>   </option>
            IFpuProcessor</name>         1</state>   </option>
            OutputFile</name>            $FILE_BNAME$.o</state> </option>
            CCLibConfigHeader</name>     1</state>    </option>
            PreInclude</name>            </state>     </option>
            CompilerMisraOverride</name> 0</state>    </option>
            CCIncludePath2</name>
          $PROJ_DIR$</state>             //
          d:\stm32_iar\lib\CMSIS</state> //
          d:\stm32_iar\lib\HAL</state>   //
          d:\stm32_iar\lib\BSP</state>   //
        </option>
            CCStdIncCheck</name>         0</state>     </option>
            CCCodeSection</name>         .text</state> </option>
            IInterwork2</name>           0</state>     </option>
            IProcessorMode2</name>       1</state>     </option>
            CCOptLevel</name>            3</state>     </option>
            CCOptStrategy</name>         0</version> 1</state> </option>
            CCOptLevelSlave</name>       3</state>     </option>
            CompilerMisraRules98</name>  0</version> 1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>               </option>
            CompilerMisraRules04</name>  0</version> 111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111</state> </option>
            CCPosIndRopi</name>          0</state>     </option>
            CCPosIndRwpi</name>          0</state>     </option>
            CCPosIndNoDynInit</name>     0</state>     </option>
            IccLang</name>               0</state>     </option>
            IccCDialect</name>           1</state>     </option>
            IccAllowVLA</name>           0</state>     </option>
            IccCppDialect</name>         1</state>     </option>
            IccExceptions</name>         1</state>     </option>
            IccRTTI</name>               1</state>     </option>
            IccStaticDestr</name>        1</state>     </option>
            IccCppInlineSemantics</name> 1</state>     </option>
            IccCmsis</name>              1</state>     </option>
            IccFloatSemantics</name>     0</state>     </option>
            CCNoLiteralPool</name>       0</state>     </option>
            CCOptStrategySlave</name>    0</version> 1</state> </option>
            CCGuardCalls</name>          1</state>     </option>
      </data>
    </settings>
    
      AARM</name> 2</archiveVersion>
      
        9</version> 1</wantNonLocal> 1</debug>
            AObjPrefix</name>           1</state>    </option>
            AEndian</name>              1</state>    </option>
            ACaseSensitivity</name>     1</state>    </option>
            MacroChars</name>           0</version> 0</state> </option>
            AWarnEnable</name>          0</state>    </option>
            AWarnWhat</name>            0</state>    </option>
            AWarnOne</name>             </state>     </option>
            AWarnRange1</name>          </state>     </option>
            AWarnRange2</name>          </state>     </option>
            ADebug</name>               1</state>    </option>
            AltRegisterNames</name>     0</state>    </option>
            ADefines</name>             </state>     </option>
            AList</name>                0</state>    </option>
            AListHeader</name>          1</state>    </option>
            AListing</name>             1</state>    </option>
            Includes</name>             0</state>    </option>
            MacDefs</name>              0</state>    </option>
            MacExps</name>              1</state>    </option>
            MacExec</name>              0</state>    </option>
            OnlyAssed</name>            0</state>    </option>
            MultiLine</name>            0</state>    </option>
            PageLengthCheck</name>      0</state>    </option>
            PageLength</name>           80</state>   </option>
            TabSpacing</name>           8</state>    </option>
            AXRef</name>                0</state>    </option>
            AXRefDefines</name>         0</state>    </option>
            AXRefInternal</name>        0</state>    </option>
            AXRefDual</name>            0</state>    </option>
            AProcessor</name>           1</state>    </option>
            AFpuProcessor</name>        1</state>    </option>
            AOutputFile</name>          $FILE_BNAME$.o</state> </option>
            AMultibyteSupport</name>    0</state>    </option>
            ALimitErrorsCheck</name>    0</state>    </option>
            ALimitErrorsEdit</name>     100</state>  </option>
            AIgnoreStdInclude</name>    0</state>    </option>
            AUserIncludes</name>        </state>     </option>
            AExtraOptionsCheckV2</name> 0</state>    </option>
            AExtraOptionsV2</name>      </state>     </option>
            AsmNoLiteralPool</name>     0</state>    </option>
      </data>
    </settings>
    
      OBJCOPY</name> 0</archiveVersion>
      
        1</version> 1</wantNonLocal> 1</debug>
            OOCOutputFormat</name> 3</version> 1</state> </option>
            OCOutputOverride</name>                     1</state> </option>
            OOCOutputFile</name>
        Project.hex</state> //
        </option>
            OOCCommandLineProducer</name>  1</state>    </option>
            OOCObjCopyEnable</name>        1</state>    </option>
      </data>
    </settings>
    
      CUSTOM</name> 3</archiveVersion>
       </extensions> </cmdline> 0</hasPrio> </data>
    </settings>
     BICOMP</name> 0</archiveVersion> > </settings>
    
      BUILDACTION</name> 1</archiveVersion>
       </prebuild> </postbuild> </data>
    </settings>
    
      ILINK</name> 0</archiveVersion>
      
        16</version> 1</wantNonLocal> 1</debug>
            IlinkLibIOConfig</name>       1</state>    </option>
            XLinkMisraHandler</name>      0</state>    </option>
            IlinkInputFileSlave</name>    0</state>    </option>
            IlinkOutputFile</name>        Project.out</state> </option>
            IlinkDebugInfoEnable</name>   1</state>    </option>
            IlinkKeepSymbols</name>       </state>     </option>
            IlinkRawBinaryFile</name>     </state>     </option>
            IlinkRawBinarySymbol</name>   </state>     </option>
            IlinkRawBinarySegment</name>  </state>     </option>
            IlinkRawBinaryAlign</name>    </state>     </option>
            IlinkDefines</name>           </state>     </option>
            IlinkConfigDefines</name>     </state>     </option>
            IlinkMapFile</name>           1</state>    </option>
            IlinkLogFile</name>           0</state>    </option>
            IlinkLogInitialization</name> 0</state>    </option>
            IlinkLogModule</name>         0</state>    </option>
            IlinkLogSection</name>        0</state>    </option>
            IlinkLogVeneer</name>         0</state>    </option>
            IlinkIcfOverride</name>       1</state>    </option>
            IlinkIcfFile</name>
            $PROJ_DIR$\stm32f030x8_flash.icf</state> //
        </option>
            IlinkIcfFileSlave</name>                   </state>     </option>
            IlinkEnableRemarks</name>                  0</state>    </option>
            IlinkSuppressDiags</name>                  </state>     </option>
            IlinkTreatAsRem</name>                     </state>     </option>
            IlinkTreatAsWarn</name>                    </state>     </option>
            IlinkTreatAsErr</name>                     </state>     </option>
            IlinkWarningsAreErrors</name>              0</state>    </option>
            IlinkUseExtraOptions</name>                0</state>    </option>
            IlinkExtraOptions</name>                   </state>     </option>
            IlinkLowLevelInterfaceSlave</name>         1</state>    </option>
            IlinkAutoLibEnable</name>                  1</state>    </option>
            IlinkAdditionalLibs</name>                 </state>     </option>
            IlinkOverrideProgramEntryLabel</name>      0</state>    </option>
            IlinkProgramEntryLabelSelect</name>        0</state>    </option>
            IlinkProgramEntryLabel</name>              __iar_program_start</state> </option>
            DoFill</name>                              0</state>    </option>
            FillerByte</name>                          0xFF</state> </option>
            FillerStart</name>                         0x0</state>  </option>
            FillerEnd</name>                           0x0</state>  </option>
            CrcSize</name>        0</version> 1</state>    </option>
            CrcAlign</name>                            1</state>    </option>
            CrcPoly</name>                             0x11021</state> </option>
            CrcCompl</name>       0</version> 0</state>    </option>
            CrcBitOrder</name>    0</version> 0</state>    </option>
            CrcInitialValue</name>                     0x0</state>  </option>
            DoCrc</name>                               0</state>    </option>
            IlinkBE8Slave</name>                       1</state>    </option>
            IlinkBufferedTerminalOutput</name>         1</state>    </option>
            IlinkStdoutInterfaceSlave</name>           1</state>    </option>
            CrcFullSize</name>                         0</state>    </option>
            IlinkIElfToolPostProcess</name>            0</state>    </option>
            IlinkLogAutoLibSelect</name>               0</state>    </option>
            IlinkLogRedirSymbols</name>                0</state>    </option>
            IlinkLogUnusedFragments</name>             0</state>    </option>
            IlinkCrcReverseByteOrder</name>            0</state>    </option>
            IlinkCrcUseAsInput</name>                  1</state>    </option>
            IlinkOptInline</name>                      0</state>    </option>
            IlinkOptExceptionsAllow</name>             1</state>    </option>
            IlinkOptExceptionsForce</name>             0</state>    </option>
            IlinkCmsis</name>                          1</state>    </option>
            IlinkOptMergeDuplSections</name>           0</state>    </option>
            IlinkOptUseVfe</name>                      1</state>    </option>
            IlinkOptForceVfe</name>                    0</state>    </option>
            IlinkStackAnalysisEnable</name>            0</state>    </option>
            IlinkStackControlFile</name>               </state>     </option>
            IlinkStackCallGraphFile</name>             </state>     </option>
            CrcAlgorithm</name>   0</version> 1</state>    </option>
            CrcUnitSize</name>    0</version> 0</state>    </option>
            IlinkThreadsSlave</name>                   1</state>    </option>
      </data>
    </settings>
    
      IARCHIVE</name> 0</archiveVersion>
      
        0</version> 1</wantNonLocal> 1</debug>
            IarchiveInputs</name>    </state>                  </option>
            IarchiveOverride</name>  0</state>                 </option>
            IarchiveOutput</name>    ###Unitialized###</state> </option>
      </data>
    </settings>
    
      BILINK</name> 0</archiveVersion>
      >
    </settings>
 
  </configuration>
 
      BSP</name>
        d:\stm32_iar\lib\BSP\stm32f0xx_nucleo.c</name>           </file>
  </group>
 
      CMSIS</name>
        d:\stm32_iar\lib\CMSIS\system_stm32f0xx.c</name>         </file>
        d:\stm32_iar\lib\CMSIS\startup_stm32f030x8.s</name>      </file>
  </group>
 
      HAL</name>
        d:\stm32_iar\lib\HAL\stm32f0xx_hal.c</name>              </file>
        d:\stm32_iar\lib\HAL\stm32f0xx_hal_adc.c</name>          </file>
        d:\stm32_iar\lib\HAL\stm32f0xx_hal_adc_ex.c</name>       </file>
        d:\stm32_iar\lib\HAL\stm32f0xx_hal_can.c</name>          </file>
        d:\stm32_iar\lib\HAL\stm32f0xx_hal_cec.c</name>          </file>
        d:\stm32_iar\lib\HAL\stm32f0xx_hal_comp.c</name>         </file>
        d:\stm32_iar\lib\HAL\stm32f0xx_hal_cortex.c</name>       </file>
        d:\stm32_iar\lib\HAL\stm32f0xx_hal_crc.c</name>          </file>
        d:\stm32_iar\lib\HAL\stm32f0xx_hal_crc_ex.c</name>       </file>
        d:\stm32_iar\lib\HAL\stm32f0xx_hal_dac.c</name>          </file>
        d:\stm32_iar\lib\HAL\stm32f0xx_hal_dac_ex.c</name>       </file>
        d:\stm32_iar\lib\HAL\stm32f0xx_hal_dma.c</name>          </file>
        d:\stm32_iar\lib\HAL\stm32f0xx_hal_flash.c</name>        </file>
        d:\stm32_iar\lib\HAL\stm32f0xx_hal_flash_ex.c</name>     </file>
        d:\stm32_iar\lib\HAL\stm32f0xx_hal_gpio.c</name>         </file>
        d:\stm32_iar\lib\HAL\stm32f0xx_hal_i2c.c</name>          </file>
        d:\stm32_iar\lib\HAL\stm32f0xx_hal_i2c_ex.c</name>       </file>
        d:\stm32_iar\lib\HAL\stm32f0xx_hal_i2s.c</name>          </file>
        d:\stm32_iar\lib\HAL\stm32f0xx_hal_irda.c</name>         </file>
        d:\stm32_iar\lib\HAL\stm32f0xx_hal_iwdg.c</name>         </file>
        d:\stm32_iar\lib\HAL\stm32f0xx_hal_pcd.c</name>          </file>
        d:\stm32_iar\lib\HAL\stm32f0xx_hal_pcd_ex.c</name>       </file>
        d:\stm32_iar\lib\HAL\stm32f0xx_hal_pwr.c</name>          </file>
        d:\stm32_iar\lib\HAL\stm32f0xx_hal_pwr_ex.c</name>       </file>
        d:\stm32_iar\lib\HAL\stm32f0xx_hal_rcc.c</name>          </file>
        d:\stm32_iar\lib\HAL\stm32f0xx_hal_rcc_ex.c</name>       </file>
        d:\stm32_iar\lib\HAL\stm32f0xx_hal_rtc.c</name>          </file>
        d:\stm32_iar\lib\HAL\stm32f0xx_hal_rtc_ex.c</name>       </file>
        d:\stm32_iar\lib\HAL\stm32f0xx_hal_smartcard.c</name>    </file>
        d:\stm32_iar\lib\HAL\stm32f0xx_hal_smartcard_ex.c</name> </file>
        d:\stm32_iar\lib\HAL\stm32f0xx_hal_smbus.c</name>        </file>
        d:\stm32_iar\lib\HAL\stm32f0xx_hal_spi.c</name>          </file>
        d:\stm32_iar\lib\HAL\stm32f0xx_hal_spi_ex.c</name>       </file>
        d:\stm32_iar\lib\HAL\stm32f0xx_hal_tim.c</name>          </file>
        d:\stm32_iar\lib\HAL\stm32f0xx_hal_tim_ex.c</name>       </file>
        d:\stm32_iar\lib\HAL\stm32f0xx_hal_tsc.c</name>          </file>
        d:\stm32_iar\lib\HAL\stm32f0xx_hal_uart.c</name>         </file>
        d:\stm32_iar\lib\HAL\stm32f0xx_hal_uart_ex.c</name>      </file>
        d:\stm32_iar\lib\HAL\stm32f0xx_hal_usart.c</name>        </file>
        d:\stm32_iar\lib\HAL\stm32f0xx_hal_wwdg.c</name>         </file>
  </group>
 
  
    Src</name>
        $PROJ_DIR$\main.c</name>              </file>
        $PROJ_DIR$\stm32f0xx_hal_msp.c</name> </file>
        $PROJ_DIR$\stm32f0xx_it.c</name>      </file>
  </group>
 
</project>



F030R8-Nucleo-Template 폴더의 Project.ewp 파일 내용입니다.
//
            ExePath</name>                     Out</state>    </option>    //
            ObjPath</name>                     Out</state>    </option>    //
            ListPath</name>                    Out</state>    </option>    //

Out 한 개의 폴더에 출력을 넣도록 설정하고 있는데
Obj 파일 때문에 복잡하다면 폴더를 두개로 나누어도 되겠습니다.
            ExePath</name>                     Out</state>    </option>    //
            ListPath</name>                    Out</state>    </option>    //
            ObjPath</name>                     Obj</state>    </option>    //

//
          $PROJ_DIR$</state>             //
          d:\stm32_iar\lib\CMSIS</state> //
          d:\stm32_iar\lib\HAL</state>   //
          d:\stm32_iar\lib\BSP</state>   //
소스파일을 프로젝트 파일이 있는 폴더로 이동해서 하나로 합쳤고
라이브러리 참조 디렉토리 경로를 절대 경로로 지정 했습니다.
(모든 파일 저장하면 절대 경로가 프로젝트 파일 위주의 상대 경로로 바뀔 수 있습니다.)
//
        Project.hex</state> //
Hex 파일명을 지정하지 않으려고 단순하게 만들었습니다.
//
            $PROJ_DIR$\stm32f030x8_flash.icf</state> //
프로젝트 디렉토리의 파일을 참조하라고 적고있는데
파일을 변경하지 않는다면 
          d:\stm32_iar\lib\CMSIS\stm32f030x8_flash.icf</state> //
프로젝트 폴더에 파일을 가질 필요 없이 절대 경로를 지정해도 되겠죠
//

아랫쪽 의 파일에서
라이브러리는 절대경로(d:\stm32_iar\lib\HAL\)로 지정하고 있고
소스파일은 상대경로($PROJ_DIR$\)로 지정하고 있습니다.
//
Project.ewp 이 파일은 복사해서 사본(Project - 복사본.ewp)을 하나 만들어두는 것도 좋겠죠

//
1904378426_vhnQWf7G_25EC25A0259C25EB25AA25A9_25EC2597258625EC259D258C.png3Ftype3Dw740
프로젝트 폴더를 하나로 만든다는 것은 
위처럼 프로젝트 폴더안에 소스파일과 헤더파일을 한꺼번에 만든다는 것을 의미합니다.
파일 몇개 되지도 않는데 폴더를 각각 만들면 복잡해서 합쳤습니다.

위 방법은 제가 편한대로 변경하는 것인데, 각자의 취향이나 습관대로 하셔도 됩니다.^^ 

 

댓글 : 0

조회수 : 2,390

등록된 댓글이 없습니다.

게시물 검색

♧ STM32F0 목록

게시물 검색


Privacy Policy
MCU BASIC ⓒ 2017
PC버전