Tiva C (TM4C123) CMSIS Device Header Dosyaları

Başlatan Tagli, 23 Haziran 2021, 21:02:25

Tagli

Daha önce hiç TI işlemcisi kullanmadım, ekosistemlerini bilmiyorum. Bir iş teklifinde, donanım tasarımı bitmiş, üzerinde TM4C123 olan bir karta yazılım yapılması talebiyle geldiler, ben de ilk kez bu sebeple araştırmaya başladım neymiş ne değilmiş diye.

TI TivaWare diye bir kütüphane sunuyor. ST'nin eski SPL'si gibi bir şey anladığım kadarıyla. Ancak bunun klasörünü ne kadar eşelediysem de, ST'den alıştığım CMSIS standartlarına göre oluşturulmuş register ve bit tanımlamalarını içeren cihaz header'larını bulamadım. Evet, kendi kütüphanerinde register ve bit tanımlamaları var ama hiç de ST'ninkilere benzemiyorlar. Hiç hoşuma gitmedi bu. Ben DONANIM->REGISTER gibi struct tabanlı tanımlamalara alışığım ve anladığım kadarıyla bu ST ile değil ARM CMSIS standartları ile ilgili bir notasyon.

İnternette araştırınca Github'da bu repoya denk geldim. Tam aradığım şey. Ama en son 7 yıl önce güncellenmiş. TI ile resmi bir bağı yok, birisi nereden bulduysa koymuş bunları. Anladığım kadarıyla işlemciler için tüm register ve bit tanımlamaları ve özelliklerini içeren özel CMSIS-SVD dosyaları oluyor. Bunlar da özel programlara işlenerek istenilen dil vs. için header dosyaları oluşturulabiliyor. Tahminimce bu adam da bir yerden SVD'leri bulup kendisi header'ları üretmiş.

Benim anlamadığım, bu tür dosyaları TI neden kendisi vermiyor? Kendi sitelerinde ne CMSIS Device Header'larını ne de SVD dosyalarını bulamadım. Halbuki ST'nin Cube paketlerinin içinde tüm header'lar geliyor. Benim mi gözümden kaçıyor acaba? Malum TI'ın sitesine de alışık değilim, yolumu bulamamış olabilirim.
Gökçe Tağlıoğlu

muhendisbey

https://www.ti.com/tool/EK-TM4C123GXL

Sitenin en altına doğru ICDI drivers'ın da bulunduğu kısımdaki dosyaları incelediniz mi? Keil MDK4 ile az derleme, az uygulama yapmadım. Bana da şimdi STM32'nin HAL ve CubeMX çok farklı geliyor kullanamıyorum.

Bir diğeri, yapacağınız iş çok register tabanına girmenizi gerektirmiyorsa ide olarak energia (arduino arayüzü) ile programlama yapabilirsiniz.

https://energia.nu/
Zulmü alkışlayamam, zalimi asla sevemem; Gelenin keyfi için geçmişe kalkıp sövemem.

JKramer

.svd'ler için burasını kullanıyorum, header,vs. üretmek de mümkün: https://github.com/posborne/cmsis-svd

dumansiz

Hazır konusu açılmışken ben de başka bir soru sorayım.
Bu serideki işlemcilerin digikeyde çok iyi stokları var.
Yeni projelerde kullanabilirim.
Yazdıklarınızdan anladığım kadarıyla geliştirme ortamı, STM32'nin geliştirme ortamından farklı.
Tiva C serisinde IDE ve derleyici olarak daha çok ne kullanılıyor?
Ücretsiz derleyicisi var mı?

muhendisbey

Ide'si farklı değil, KEIL ya da IAR ile derleyebilirsiniz. Bunun yanında TI'ın code composer studio derleyicisini de kullanabilirsiniz.

STM32'nin STD lib'inden programlama olarak farksız. HAL library'e göre farklı gelebilir. TI işlemciyle beraber ADC, PWM, UART... gibi örneklerle de gelir. Yani örnek projeyi açıp kodu onun üzerinde rahatlıkla geliştirebiliyorsunuz. Ben bu yöntemi çok sevdim ve uzun zaman kullandım.

Son zamanlarda daha hazırcı oldum. STM32 ile bile proje geliştireceksem Arduino IDE'si kullanıyorum. Sıkıldım sayfalarca datasheet okumaktan, vector table, interrupt priority ayarlamaktan. Bazen ne kadar ayarlarsan ayarla 1 hafta saçma sapan noktada takılıp kalıyorsun.
Zulmü alkışlayamam, zalimi asla sevemem; Gelenin keyfi için geçmişe kalkıp sövemem.

Tagli

#5
Code Composer Studio diye Eclipse tabanlı bir IDE'si var, ancak maalesef Eclipse'in biraz eski bir versiyonunu kullanıyor gibi. Bazı eklentileri yüklerken hata verdi. Ayrıca kendi AppCenter gibi bir yeri var, oraya da bağlanamadı.

Ekleme: Yanlış anlaşılmasın, Eclipse'i severek kullanıyorum. Ancak Eclipse tabanlı bazı IDE'ler, dayandıkları Eclipse versiyonunu güncellemeyip birkaç yıl öncesinden kalma Eclipse kullanıyorlar. Bu da sıkıntılara neden oluyor. Cypress'in FX2 & FX3 için olan IDE'si de (adını unuttum) böyle, sanki 3-5 yıl geriden geliyor gibi.

IDE'de proje oluştururken TI'ın kendi derleyicisi veya GCC arasında seçim imkanı veriyor. İkisi için de linker script ve startup dosyalarını (en azından bir kısmını) kendisi üretiyor. Sonrasında boş bir main.c ile baş başa kalıyorsunuz.

Ben register seviyesinde kod yazmaktan hoşlanan biri olduğum için bu ekosistem benim hoşuma gitmedi. Daha önce bahsettiğim CMSIS headerlarını, TI'ın kendi forumlarında bir çalışanın paylaştığı bir .zip paketinde de buldum. Belki de asıl kaynak odur.

Bir de TI'ın kendi RTOS'u olan TI-RTOS'un inceledim - istemsiz bir şekilde kafamda hep "Tırt OS" diye sesleniyor. Ben FreeRTOS'ta olduğu gibi header ve source dosyalarını projeye ekleyip doğrudan kullanabilirim diye ummuştum ama anladığım kadarıyla öyle olmuyor. İllaki IDE üzerinden sağa sola tıklayıp bir çeşit konfigürasyon oluşturmak falan gerekiyor, ya da ben öyle anladım. Yani dosyaları bir ön işlemeden geçiriyor. Hiç hoşuma gitmedi bu.
Gökçe Tağlıoğlu

muhendisbey

RTOS işine hiç girmedim, yorum yapmam doğru olmaz. Eskiden ide'si eclipse tabanlı değildi, sonradan eclipse modası çıkardılar, bu durumu ben de pek sevmiyorum. Benzer sebeple Atollic kullanmama sebebim de eclipse tabanlı oluşu.

Keil içerisinde CMSIS ile geliyor olabilir. Böyle bir sıkıntı ile karşılaşmadım. Example boards kısmındaki kendime en yakın projeler üzerinden yürüttüm kodlama işlemlerimi. Tiva'nın önceki adı stellaris idi. Stellarisware adlı bir kurulum paketi ile tek seferde Keil'e entegre oluyordu ve oradan direk kullanıyordum. Siz böyle deyince kendimi "acaba CMSIS ile hiç muhatap olmadım mı?" diye sorguluyorum cevabım yok. Ekstra CMSIS indirdiğimi hatırlamıyorum.
Zulmü alkışlayamam, zalimi asla sevemem; Gelenin keyfi için geçmişe kalkıp sövemem.

sinus

Alıntı yapılan: Tagli - 23 Haziran 2021, 21:02:25Ben DONANIM->REGISTER gibi struct tabanlı tanımlamalara alışığım ve anladığım kadarıyla bu ST ile değil ARM CMSIS standartları ile ilgili bir notasyon.

https://www.youtube.com/watch?v=xkAT9MXh8UY&list=PLmfT_cdP5PYBWYvK_bCdGyBqQEiRzUPeq&index=7 bu videolarda istediğiniz yapıda bir programlama anlatılıyor.


https://dev.ti.com/tirex/ buradan da TI'ın tüm denetleyici ve boardlarıyla ilgili bilgilere ulaşabilirsiniz.

RaMu

Alıntı yapılan: Tagli - 23 Haziran 2021, 21:02:25... Bir iş teklifinde, donanım tasarımı bitmiş, üzerinde TM4C123 olan bir karta yazılım yapılması talebiyle geldiler, ben de ilk kez bu sebeple araştırmaya başladım neymiş ne değilmiş diye.
...
Ben olsam TM4C123 yerine lehimlenecek şekilde, ST bir mcu ya dönüştürücü çizer, bildiğim mcu ya yazardım kodu.
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

halil82ist

Alıntı yapılan: RaMu - 25 Haziran 2021, 22:16:16Ben olsam TM4C123 yerine lehimlenecek şekilde, ST bir mcu ya dönüştürücü çizer, bildiğim mcu ya yazardım kodu.

muhtemelen piyasada st işlemci yok diye öyle yapmışlardır  . Bizde msp430 a çevirmeye uğraşıyoruz .

Tagli

@halil82ist Yok, anladığım kadarıyla cihaz donanımı 5-6 yıl önce tasarlanmış (en azından o tarihlerde başlamış), ama hem aciliyet olmamış hem de araya başka işler girince pek üzerinde durmamışlar, kalmış öyle. Hatta işlemciyi zamanında seçen arkadaş şimdi artık o firmada çalışmıyor bile. Seçmiş oldukları işlemcinin güncel tedarik sorunlarından pek etkilenmemesi tamamen şans yani...
Gökçe Tağlıoğlu

muhendisbey

Alıntı yapılan: Tagli - 26 Haziran 2021, 09:50:15Seçmiş oldukları işlemcinin güncel tedarik sorunlarından pek etkilenmemesi tamamen şans yani...

Aslında pek şans değil. TI ve Cortex M4 denince ilk akla gelen, uzun süredir üretimde olan bir MCU. Launchpad serisi geliştirme kartları çok fazla tutmuş geliştirme kartlarından. Bugün bile bulunuyor olması da bu yüzden. İlk etapta bir ARM işlemcisi geliştirme kartı iken, arduino platformuna taşınması kartı popüler hale getirdi. Birçok M4 serisi mikrodenetleyicide EEPROM dahili olarak bulunmazken bu seride 2kb EEPROM dahili olarak gelmekte. Bu ciddi bir avantaj. Üstelik zamanında 5 dolar gibi rakam ile satıldı, kargo ücreti dahil.
Zulmü alkışlayamam, zalimi asla sevemem; Gelenin keyfi için geçmişe kalkıp sövemem.

neccarzade

Konuyla ilgilenen arkadaşlar olursa diye eklemek istedim. Üniversiteden bir hocamız lisansta mikro dersimizde eski versiyonu olan stellaris kitini anlatmıştı bizlere. Pandemi sürecinde tiva m4 serisini ders olarak eklemiş kanalında. Faydalanmak isteyenler için link: https://www.youtube.com/playlist?list=PL-eKWUr5h4myBzqmyVgmhaZztvl7gbR4E

RaMu

Alıntı yapılan: RaMu - 25 Haziran 2021, 22:16:16Ben olsam TM4C123 yerine lehimlenecek şekilde, ST bir mcu ya dönüştürücü çizer, bildiğim mcu ya yazardım kodu.


Gülme komşuna gelir başına :)

@Tagli durum nedir, projeyi kabul ettin mi?
Bende benzer bir iş için TI nin TMS570 mcu suna başladım.
HalCoGen ve CSS kullanacağım, led blink aşamasını az çok geçtim, bakalım neler bekliyor bizi.
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

Tagli

@RaMu , hayır, projeyi kabul etmedik. İşlemci tercihi dışında daha ciddi başka sorunlar da vardı. Teklifi getirenlerin muhtemelen düşündüklerinin aksine, epey zaman ve insan kaynağı gerektirecek uzun soluklu büyük bir projeydi ve bizim gerekli kaynaklarımız yoktu. Şu kadarını söyleyeyim: Projenin FDA'dan onay alması gerekiyordu. Muhtemelen kod yazmak için harcayacağımız zamanın 5 katını testler ve evrak işleri için harcamamız gerekecekti.

Neyse, şimdilik TM4C123 maceram rafa kalkmış oldu. Yine de bu vesile ile güncel durumdan biraz haberim oldu.

Alıntı yapılan: Tagli - 26 Haziran 2021, 09:50:15Hatta işlemciyi zamanında seçen arkadaş şimdi artık o firmada çalışmıyor bile.
Bu proje ve birlikte çalışma ihtimali o zaman da gündeme gelmiş ve bu arkadaş bana o zaman Tiva C Series Launchpad aldırmıştı. 1-2 hafta sonra da işten çıkmıştı :) Hala blinky bile yapmadım, kart öyle duruyor. Başka bahara kaldı artık...
Gökçe Tağlıoğlu