Showing posts with label AT91SAM7S64. Show all posts
Showing posts with label AT91SAM7S64. Show all posts

Tuesday, August 5, 2008

Contoh mengcopy daerah memory ke daerah memory yg lain

/* copy initialized variables .data section (Copy from ROM to RAM) */
ldr R1, =_etext
ldr R2, =_data
ldr R3, =_edata
loop1: cmp R2, R3
ldrlo R0, [R1], #4
strlo R0, [R2], #4
blo loop1

/*contoh mengclear daerah memory*/
mov R0, #0
ldr R1, =_bss_start
ldr R2, =_bss_end
loop2: cmp R1, R2
strlo R0, [R1], #4
blo loop2

Cara C memakai Fungsi yg didefinisikan di asembly

Contoh :
  • di file assembly :

.global add /*directive untuk membuat subrutin add dapat diakses dari luar*/

add: /*definisi subroutine add*/
ADD r0, r0, r1
MOV pc, lr

  • di file C :

extern void add(void); //declarasi fungsi add

//contoh pemakaian

int main(){

.

.

add();

.

.

}

Monday, August 4, 2008

Makefile

Secara umum makefile adalah aturan untuk memanggil tiga proses berikut :
1. all : proses untuk nge-build (compiling & linking)
2. clean : menghapus file-file obyek hasil building
3. program : mendownload ke flash.

Nama-nama ini dapat anda ganti sesukanya. Contoh format penulisan makefile adalah sebagai berikut :

#----------------------
all :
bla...bla...bla...

#----------------------
clean :
bla...bla...bla...

#----------------------
program:
bla...bla...bla...


Cara memanggilnya dapat dilihat pada artikel yang berjudul Men-download ke flash. Pada artikel tersebut dicontohkan cara memanggil proses program. Untuk memanggil proses all dan clean dilakukan dengan cara yang serupa dengan mengganti nama program dengan all atau clean.

Thursday, July 31, 2008

Meng-upload SAM-BA dari controller ke PC



Terkadang at91sam7-pxxx board tidak berhasil melakukan booting dari SAM-BA. Kita juga tidak yakin apakah SAM-BA memang sudah terinstall. Walau demikian, JTAG masih berjalan dengan baik. Maka, untuk lebih memastikan SAM-BA, kita download SAM-BA melalui JTAG. Tetapi, sebelumnya kita harus memiliki file bin SAM-BA itu. Caranya? Jangan sia-siakan kesempatan, pada saat SAM-BA berjalan dengan baik, upload dari controller.
Step 1 :

Step 2:

Wednesday, July 30, 2008

Really what the... (part2) SAM-BA

Suatu hari saya coba lakukan SAM-BA system recovery procedure. Setelah saya tancapkan kabel USB, PC segera mengenali driver dari atmel. SAM-BApun dapat mengenalinya.

Karena belum terbiasa menggunakan SAM-BA saya tidak sengaja klik erase all flash->execute. Maka hilanglah SAM-BA dari flash. Sejak saat itu tidak pernah berhasil merecovery. Berbagai literatur dan tanya jawab sudah saya baca, dan coba-coba beberapa haripun sudah saya jalani, termasuk melepas kapasitor kristal 1o pf yang terpasang pada kristal. Hasilnya nihil.

Entah bagaimana penjelasannya, ketika jumper TST dalam keadaan terpasang, tidak sengaja saya download program LED contoh dari atmel melalui OpenOCD - JTAG. Kemudian saya cek kontroler tidak bekerja. Saya berfikir jangan-jangan gara-gara kapasitor kristal diunsolder. Selidik punya selidik, ternyata jumper TST sedang terpasang.

Maka power saya matikan untuk melepas jumper TST, Setelah power saya hidupkan lagi, kemudian saya tancapkan kabel USB, terdengarlah bunyi "BEEP". Saya buka SAM-BA ahirnya terdekteksilah board saya itu.

Berikutnya saya coba lagi melakukan system recovery sesuai dengan prosedure standar. Hasilnya valid.

Pertanyaannya :
1. apakah penyebabnya memang karena kelebihan kapasitor pada kristal?
2.chip atmel ini memang tidak stabil, seperti yang dikatakan beberapa pengguna.

Setelah beberapa kali coba macam-macam program, saya berkesimpulan bahwa : kegagalan atmel board (dlm hal ini at91sam7s64) selalu yang berhubungan dengan penggunaan fitur USB pada atmel termasuk SAM-BA. Sebab jika flash didownload dengan program lain yang tidak menggunakan fitur USB atmel, program jalan dengan normal (walau kadang-kadang tidak juga). Penyebab utama menurut saya adalah clocknya tidak sinkron dengan clock USB. Penjelasan lengkapnya saya belum tahu.

Suatu saat tiba-tiba fitur USB termasuk SAM-BA bisa digunakan. Barangkali jika controllernya sudah cukup panas..bisa bekerja dengan baik. Brati butuh dipanasi? kyk mobil aja

Monday, July 28, 2008

Bagaimana cara menggunakan SAM-BA?

Secara singkat, suatu program yang disebut SAM-BA memungkinkan PC melakukan baca-tulis Flash/memory dan debugging terhadap controller melalui serial port atau USB.

Bagaimana caranya ? Install dulu SAM-BA ke flash. Atmel menyimpan SAM-BA dalam suatu read only memory yang tersembunyi. Untuk menginstal SAM-BA ke flash kita perlu melakukan suatu prosedur yang disebut system recovery. Berikut ini langkahnya:
  • Matikan power
  • Hubungkan pin TST ke VDDIO
  • Pastikan PA0,PA1,dan PA2 high (mereka mendapat internal pullup sehingga akan high meski tak terhubung ke manapun)
  • Hidupkan power.
  • Tunggu 10 detik.
  • Matikan Power.
  • Putuskan koneksi pin TST ke VDDIO

Effect proses diatas adalah, dua page pada flash akan diisi dengan SAM-BA. Begitu power dihidupkan, SAM-BA akan secara otomatis dijalankan. Berikutnya, untuk melakukan baca/tulis/download flash/memory, gunakan software SAM-BA GUI.

Wednesday, July 23, 2008

DBGU, what the....

DBGU,... istilah apalagi itu!!!
Secara sekilas saya simpulkan :
  • DBGU singkatan Debug Unit
  • DBGU adalah port serial (sama seperti rs232) di Atmel ARM7 ditujukan untuk mendownload / upgrade program ke flash dengan syarat : di flash sudah terdapat program boot yang disebut SAM-BA Boot Assistant.
  • SAM-BA memungkinkan pendownloadan melalui port DBGU dan port USB.
  • ARM7 Atmel menyimpan SAM-BA dalam suatu read only memory yang tersembunyi. SAM-BA ini dapat ditransfer ke flash dengan prosedur tertentu yang disebut SAM-BA™ Boot System Recovery. (Untuk lebih jauh tentang prosedur ini, silakan baca artikel-artikel tentang SAM-BA sistem recovery). Jika flash telah terinstall SAM-BA, kita bisa menggunakan port DBGU untuk mendownload program kita ke flash.
  • Untuk mendownload program melalui port DBGU kita harus pake software yang disebut SAM-BA GUI. Kadang disebut sebagai SAM-BA juga, menjadi rancu bahwa SAM-BA yang dimaksud adalah program yang ada di flash atau software di PC. Harus melihat konteks kalimatnya.
  • DBGU juga dapat digunakan untuk komunikasi serial biasa sama persis seperti RS232, hanya saja ada keterbatasan pilihan seperti jumlah bit data tidak bisa 9 bit.
  • Jika kita ingin dapat upgrade program di flash dan komunikasi serial layaknya RS232 hanya dengan satu port saja, gunakan port DBGU sebagai port untuk donwload program ke flah dan untuk komunikasi, dengan syarat di flash sudah ditanam SAM-BA.

Untuk keterangan lebih lanjut :

Men-download ke Flash

1. Lihat Jendela Make Targets, pilih project anda, kemudian klik Add Make Target
2. Isi kotak dialog Create a new Make target seperti berikut :
3. Pastikan ARM-USB-OCD , PC ,dan Atmel Board telah terhubung, kemudian klik dua kali Program

Jika main.bin tidak muncul

Seperti telah diketahui, main.bin akan didownload ke dalam flash. Jika project telah di-build tetapi main.bin tidak muncul, maka lakukanlah langkah berikut :
  1. klik kanan pada project yang bersangkutan, atau pilih menu project
  2. Klik properties
  3. Klik C/C++ Build
  4. Klik Settings
  5. Pilih Elf-Parser