Cara Memprogram STM8s103f3 dengan SDCC di Ubuntu



untuk mulai memprogram STM8, terlebih dahulu kita harus menginstal SDCC(Small Device C Compiler), SDCC dapat kita install melalui terminal dengan menggunakan perintah
~$ sudo apt install sdcc

setelah kita berhasil menginstall SDCC, selanjutnya kita harus menginstall driver stlink, dengan menggunakan perintah

~$ sudo apt install git
~$ git clone https://github.com/vdudouyt/stm8flash.git


jika sudah selesai selanjutnya kita menginstall libusb, dengan menggunakan perintah
~$ sudo apt-get install libusb-1.0-0-dev


kemudian kita masuk pada directory stm8flash dengan perintah

~$ cd stm8flash
~/stm8flash$ make

~/stm8flash$ sudo make install





Membuat program untuk STM8
untuk program percobaan, kita akan membuat program led blink, berikut adalah program yang kita buat


//Copied from telinks.wordpress.com

#include

#define CLK_CKDIVR (*(volatile uint8_t *)0x50c6) //Clock divider register
#define CLK_PCKENR1 (*(volatile uint8_t *)0x50c7) //Peripheral clock gating register 1

#define TIM1_CR1 (*(volatile uint8_t *)0x5250) //TIM1 (Timer1) control register 1
#define TIM1_CNTRH (*(volatile uint8_t *)0x525e)//TIM1 counter high
#define TIM1_CNTRL (*(volatile uint8_t *)0x525f) //TIM1 counter low
#define TIM1_PSCRH (*(volatile uint8_t *)0x5260) //TIM1 prescaler register high
#define TIM1_PSCRL (*(volatile uint8_t *)0x5261) //TIM1 prescaler register low

#define PB_ODR (*(volatile uint8_t *)0x5005) //Port B data output latch register
#define PB_DDR (*(volatile uint8_t *)0x5007) //Port B data direction register
#define PB_CR1 (*(volatile uint8_t *)0x5008) //Port B control register 1

unsigned int clock (void){
unsigned char h = TIM1_CNTRH;
unsigned char l = TIM1_CNTRL;
return ((unsigned int)(h)<<8 br=""> }

void main(void){
CLK_CKDIVR = 0x00;
TIM1_PSCRH = 0x3e;//3e = 62
TIM1_PSCRL = 0x80; //128
TIM1_CR1 = 0x01; //1
PB_DDR = 0x20; //32
PB_CR1 = 0x20; //32
for(;;)
PB_ODR = clock() % 1024 < 256 ? 0x20 : 0;
}

Simpan program tersebut dengan nama stm8.c, kemudian klik kanan dan pilih open in terminal. Kemudian ketik perintah berikut untuk meng-compile program
$ sdcc -mstm8 -–std-c99 stm8.c



penjelasan:
Sdcc digunakan untuk memanggil program sdcc.
-mstm8 digunakan untuk meng-Generate code untuk STMicroelectronics STM8.
--std-c99 digunakan untuk mengikuti format ISO C99 standard.

selanjutnya kita akan mengupload program tersebut, untuk mengupload-nya gunakan perintah berikut:
$ sudo stm8flash -c stlinkv2 -p stm8s103f3 -w stm8.ihx





Penjelasan:
stm8flash digunakan untuk memanggil program stm8flash.
-c stlinkv2 digunakan untuk menjelaskan programmer /downloader yang digunakan, disini saya menggunakan stlinkv2.
-p stm8s103f3, digunakan untuk menentukan board / mikrokontroller yang digunakan.
-w stm8.ihx, write data from file to device, digunakan untuk memanggil file yang akan di upload

Comments