Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

ARM IDEsiz programlama

Başlatan mr.engineer, 04 Haziran 2020, 23:04:24

mr.engineer

Merhaba,

Geçenlerde KEIL ile GCC çalıştırmayı deniyordum ve IDE kullanmadan da bir MCU'nun programlanabileceğini öğrendim. Komut satırı üzerinden yapılıyor fakat internette yeterince bilgi bulamadım.

The definitive Guide to Cortex-M0 isimli kitapta nasıl yapılacağına değinmiş. Kitaptaki örneğin aynısını yaptım fakat şöyle bir hata alıyorum:

arm-none-eabi-gcc: fatal error: cannot execute 'as': CreateProcess: No such file or directory

Hatanın ne olduğunu anlayamadım. Dosya yollarını doğru yazmaktan başka dikkat edilecek bir şey var mı? Eksik bir dosya mı var?
Bunun dışında linker script dosyasında mem.ld uzantılı dosyaya MCU'nun flash ve RAM başlangıç adreslerini yazdım.
Komut satırına yazdıklarım da şu şekilde:


C:\Users\orkun>set OPTIONS_ARCH=-mthumb -mcpu=cortex-m0

C:\Users\orkun>set OPTIONS_OPTS=-Os

C:\Users\orkun>set OPTIONS_COMP=-g -Wall

C:\Users\orkun>set OPTIONS_LINK=-Wl,--gc-sections,-Map=map.rpt,-lgcc,-lc,-lnosys -ffunction -sections -fdata-sections

C:\Users\orkun>set SEARCH_PATH1=C:\Users\orkun\Desktop\blink\CMSIS\Include

C:\Users\orkun>set SEARCH_PATH2=C:\Users\orkun\Desktop\blink\CMSIS\ST\STM32F0xx\Include

C:\Users\orkun>set SEARCH_PATH3=.

C:\Users\orkun>set LINKER_SCRIPT=stm32f0.ld

C:\Users\orkun>set LINKER_SEARCH="C:\Users\orkun\Desktop\gcc-arm-none-eabi-9-2020-q2-update-win32\share\gcc-arm-none-eabi\samples\ldscripts"

C:\Users\orkun>rem Compile the project

C:\Users\orkun>arm-none-eabi-gcc    ^
More? %OPTIONS_COMP% %OPTIONS_ARCH%   ^
More? %OPTIONS_OPTS% ^
More? -I %SEARCH_PATH1% -I %SEARCH_PATH2% -I %SEARCH_PATH3% ^
More? -T %LINKER_SCRIPT% ^
More? -L %LINKER_SEARCH% ^
More? %OPTIONS_LINK% ^
More? C:\Users\orkun\Desktop\blink\CMSIS\ST\STM32F0xx\Source\Templates\gcc\startup_stm32f070xb.s ^
More? C:\Users\orkun\Desktop\blink\blinky.c ^
More? C:\Users\orkun\Desktop\blink\CMSIS\ST\STM32F0xx\Source\Templates\system_stm32f0xx.c ^
More? -o blinky.elf

Tagli

#1
as dediği şey assembler. Konsolda
arm-none-eabi-as --version
yazınca bir şeyler çıkıyor mu? Normalde GCC ile birlikte assembler'ın da yüklenmesini beklerdim ama ya yüklenmemiş ya da her nedense GCC bunu bulamıyor.

Kodları konsoldan tek tek yazmak oldukça zahmetli olacaktır. Bu tür projelerde genelde make veya türevi bir derleme sistemi kullanılır. İnternette SMT32 için örnek Makefile aratırsan bir şeylere denk gelebilirsin.

Ayrıca IDE'ler kendi projeleri için Makefile da üretirler (bir yerlerden bu ayarı açmak gerekebilir). Bu Makefile'ları inceleyerek fikir edinebilir veya konsoldan çalıştırarak IDE'siz bir şekilde projeni derleyebilirsin.
Gökçe Tağlıoğlu

mr.engineer

Alıntı yapılan: Tagli - 04 Haziran 2020, 23:56:58as dediği şey assembler. Konsolda
arm-none-eabi-as --version
yazınca bir şeyler çıkıyor mu? Normalde GCC ile birlikte assembler'ın da yüklenmesini beklerdim ama ya yüklenmemiş ya da her nedense GCC bunu bulamıyor.


Söylediğiniz komut ile aşağıdakiler çıkıyor. Galiba assembler yüklü.

GNU assembler (GNU Arm Embedded Toolchain 9-2020-q2-update) 2.34.0.20200428
Copyright (C) 2020 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or later.
This program has absolutely no warranty.
This assembler was configured for a target of `arm-none-eabi'.


Alıntı yapılan: Tagli - 04 Haziran 2020, 23:56:58Kodları konsoldan tek tek yazmak oldukça zahmetli olacaktır. Bu tür projelerde genelde make veya türevi bir derleme sistemi kullanılır. İnternette SMT32 için örnek Makefile aratırsan bir şeylere denk gelebilirsin.

Hocam sürekli kullanmayacağım (IDE yeterince rahat) bir kerelik denemek istedim ama olmadı:)
Söylediğim kitapta Cortex M0 ve M3/M4 işlemciler için aynı yöntemi uygulamış.
Makefile'ı bilmiyorum ona da bakayım.