Neden ASM ile yazılan kodlar güncel mimarilerde daha yavaş çalışır...

Başlatan gerbay, 07 Eylül 2016, 00:33:32

tekosis

Bu başlığı takip ediyorum. Gayet güzel gidiyor. Hocalarım yazdığınız hiçbir şey boşa gitmiyor. Elinize emeğinize sağlık.
İlim ilim bilmektir, ilim kendin bilmektir, sen kendin bilmezsin, bu nice okumaktır.

z

Alıntı yapılan: gerbay - 09 Eylül 2016, 16:11:43
hadi şu an kullandığın işlemciden "örnek" vereyim;

bildiğiniz üzere Cortex-M3 de 2 adet stack pointer var. birisi  MSP (Main Stack Pointer), diğeri de PSP (Process Stack Pointer) ..

C compiler ı ile direk bunlara erişemezsiniz. istediğiniz anda MSP ve PSP değerlerini okumak isterseniz ya ASM ile kod yazmanız gerekir ya da compiler üreticisinin (ya da ARM ın) sizin için yazdığı kütüphanedeki "intrinsic" fonksiyonları kullanmanız gerekir.

ya da STREX/LDREX opcode larını ele alalım, hangi compiler hangi durumda bu opcode u koyacak şekilde kod üretir?


ASM hakkında hiç fikri olmayanlara hitaben;

ASM ile çalışırken işte bunlar çok sıradan şeyler haline geliyor.  Kimseden kod üretmesini beklemiyoruz. Canımız istediğinde  PSP' yi canımız istediğinde STREX, LDREX komutlarını da kullanıyoruz.

İşin içine girip biraz derinlere dalıp basit bir task switching ardından tasklar arası veri değiş tokuşu vs işlere ihtiyaç duyarsanız işin içine 2. stack pointer, korumalı yazma/okuma, kullanıcı modu, korumalı mod, handler modu, task modu vs herşeyle ilgilenmeniz gerekir.

Sadece C kodlama yaparak CPU'yu hiç tanıyamazsınız.  İşlemcinin ve derleyicinin yaptığından bana ne C satırıma ait kodları işletsin de içeride ne yaparsa yapsın derseniz zaten bu konulara merak yok demektir. Bu tip adamlarla da asm muhabbeti de yapmanın mantığı olmaz.

Forumda pek çok kereler LCD ye interrupt içinde veri yazarken sorunlarla karşılaştıklarını ve buna çözüm aradıklarını yazmışladı. Ya da int rutininden çıkışta ana programa değil de bir başka rutine gitmek istedikleri artık o rutini ana program gibi kulanmak istediklerini daha sonra ilk programa gitmek istediklerini falan isteyenler çıkıyordu.

Şimdi bu adama çözümü anlatsak kodlamayı yapabilecekler mi?

Elbette yapamayacak. Yapacak kapasitedeki adam zaten bu tip soruları sormaz.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Okan AKÇA

Arm'a asm ile kod yazmadim ancak pic ile çok yazdim ve suan c ile yazıyorum asm tartismasizdir. Islemci mimarisini bilen tabiri caizse kodlari takla attirir. Microchip ile örnek veriyorum asm en az 1/3 oraninda ve  daha az kod buda c kodundan hızlı oldugu anlamina geliyor  işi bilmeyen birisinin yazdigi kod ile isi bilen c de yazan kisi kiyaslanamaz. Suan asm ile yazmasamda asm tartismasizdir.

RaMu

@gerbay hocam emin olun kullanmak isteyenin her bilgi işine yarıyor,
yıllar önce pic32 ye asm ile yazmak istiyorum demiştim,
C ile yazsan daha avantajlı olur dedi forum ve ikna oldum,
C öğrenmeye başladım.
Şimdide anlattıklarınız çekici geldiği için tartışmayı alevlendirmek istedim biraz.
Yoksa verdiğiniz linkleri inceledim ve
bulduğum tezatları dahi yazmadım.
Konuyu dahada derinlemesine anlamak için somut örnekler bekliyorum aslında.

Yani en son mesajınızdaki gibi şurada çalışan arkadaşım var,
veya ben şu nitelikte bir iş ile uğraşıyorum,
böyle böyle işler yapmak istiyorsanız,
şu niteliklere sahip olmalısınız,
bu işlere girmek size nasip olur veya ağzınızla kuş tutsanız amca dayı lazım bunu göz önünde bulundurun,
sonuçta dediğiniz gibi insan emek verdimi karşılığını bekliyor,
ve şu şu işlerde çalışırsanız bakın şu sertifikaları şu uygunlukları şu kurumlar istiyor,
bizde şu şekillerde sağlıyoruz...
Gibi yeri geldikçe somut örnekler verebilirsiniz diye konu devam etsin istiyorum,
verdiğiniz linkleri okuyunca pekte gerçek hayatla bağdaştıramıyorum,
kendimi bir kokpit için program geliştiren biri olarak hayal etmek zor geliyor,
bu kabiliyetim var ama biliyorsunuz liyakatla yürümeyen işler ülkesi var,
kod satırlarının arasından çıkınca bizi hangi başka gerçekler bekliyor,
bu bile öğrendiğim ve öğrenmeye niyetlendiğim şeyleri etkiliyor doğal olarak,
yoksa C de ASM de ucundan yazan zaten hangisinin nerede ne kadar kendine yarayacağını anlıyor,
bu işlerin iyice içine girince programcıları neler bekliyor,
tecrübelerinizi aktarmaya devam edebilirseniz sevinirim.

Bir hikaye benden olsun:
Ben üniversitede C dersini geçebilmek  için
10 sayfa kadar programcıkları ezberlemiştim,
o zaman C derslerinde hayatımda ilk defa şunu demiştim kendime,
yapamayacağım bir şey varsa oda programlamayı öğrenmekmiş,
zor olanı yapmışım ezberleyip sınavları verdim,
ama birkaç yıl sonra ASM ile tanıştım çok kolay gelmişti,
programcılığı bu sayede çok basit ve zevkli şekilde öğrenmeye başladım.
Sonra C ye tekrar bakınca vay be nasıl öğrenememişim eskiden dedim.

Yani hocam herkes neyi istiyorsa onu kullanacak ama
zamanla istediklerin değişebiliyor, değiştirilebiliyor.
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

mert3162


ASM nin @z hocamın yumuşak karnı olduğunu sadece profiline tıklayıp avatarına baksanız bile görebilirsiniz.Ben sırf kendisini bu konunun içine çekmek (teşvik etme amacı ile) ters görüşlerde bulundum yoksa pic öğrenirken BTFSC,BTFSS yi ilk duyduğumda yemişim lojik kapılarla saçma entegrelerle devre tasarlamasını ben pic öğrenicem diyip dalmıştım foruma 12 Aralık 2003 tarihinde sonrasında pic staj yaptığım şirkette ticari ürünlerin içinde kullanılsada benim için (malesef) hobi ürünü olmaktan öteye geçemedi.(Kullanma fırsatım yada profesyonel işimin olmaması sebebi ile işlemciye zaman harcamama yüzünden)PLC ye yönelince makineler programlar arızalar derken biraz pnömatik biraz hidrolik.
[/size]
[/size]Pic konusunda ise ben EML Elektrik bölümü okuyordum ve bizde mikroişlemcili dersler yoktu sadece dijital elektronik hocamız iyi bir adamdı karnaugh haritalarını ve dijital devre tasarımını öğrettiğinde picleri ilk ozaman duyup soluğu forumda almıştım.Neyse konudan çok uzaklaştım.Tek amacım @z hocamı konuya dahil etmekti biraz kışkırtınca bizim için çok faydalı bir münazara gerçekleşti c ve asm nin birbirine olan farklarını artılarını eksilerini böylece öğrenmiş olduk.Hatta forumda bir daha soran olursa burayı referans verebiliriz.Güzel bir konu olduğunu düşünüyorum.Emeği geçen sıkılmadan usanmadan bizlere fikirlerini beyan eden hocalarımıza teşekkür ediyorum.

|^^^^^^^^^^^^\ ||\
|__PICPROJE.ORG __
||'""|""\___
| _____________ l | |__|__|___| )
(@!)!(@)"""""**|(@) (@)****|(@)---------

 Üstadlarım nonstradam & Logan

z

Alıntı yapılan: gerbay - 09 Eylül 2016, 23:36:23
hocam zaten söyledik, işletim sistemi yazmaya çalışacak adam ilgili işlemciyi öğrenmeli.. sadece işlemciyi de değil, kullandığı derleyiciyi de iyi öğrenmeli.

ama yine söylüyorum, işletim sistemi ASM ile yazılmaz, C++ ile de yazılmaz, C ile yazılır. Bunu mümkün olup olmaması açısından söylemiyorum. Doğru olan o olduğu için söylüyorum.

hocam işletim sistemi yazsanız bile yazacağınız ASM kodu bir kaç rutinden ibaret kalır.....

Hocam işletim sistemi yazmak diye neden şartlanıyorsun. Klasik düz yazım şekli ile kodunu yazıyorsun yazıyorsun sonra ana döngüde iki fonksiyonu peş peşe çalıştırırsan ana döngü süresinin uzayacağını ve bazı olumsuzluklar olacağını öngörüyorsun. Hemen bunları ayırıyorsun ve her timer int üretildiğinde bir birinin bir birinin çalışmasını sağlıyorsun. Oluyor sana task anahtarlaması.
Tüm bu işleri kısacık bir kodlama ile yapıyorsun.

Bu kodlamada bazen o garip 4..5 komuttan yararlanmak gerekiyor.

Gördüğün gibi hiç kimseye muhtaç değilsin. Öbür türlü basit bir iş için bile RTOS yükle, RTOS'u öğren incelikleri öğren ohooooo.

Kafamı neden abuk sabuk şeylerle doldurayım.

Dünyaya tekrar gelsem konuşmayı öğrenmeden önce asm'yi öğrenirdim.

Yapılacak projenin adı sanı önemli.

ASM ile programcılık diyince benim aklıma asla büyük verilerle işlemler gelmiyor.

Elektronik, motor, opamplı devre eşdeğeri vs geliyor.

Biz elektoniği yeni yeni öğrenmeye başladığımızda elektroniği hiç bilmeyen amcalar motorla döndürülen tamburlu düzenekler yaparlardı. Yürüyen ışıklı reklam panoları vs bunlarla yapılırdı. (Eskiden çamaşır makinelerinde kullanılan mekanik beyinlerle aynı mantık)

Sonra basit lojik devreleri öğrendik sonra filip floplarla ardışıl işlemler yapmayı. Durum makinesi yapmayı öğrendik.  Senkron tasarım asenkron tasarım derken  MCU ile tanıştık tüm o eski bilgilerin üstüne bu büyük kolaylık oldu.

Sonra kontrol teori falan öğrendik. Matematik öğrendik. Tamburlu düzeneğin benzeri sisteme bunları da ilave ettik.

C biliyormuyum? İşimi görecek kadar biliyorum.
ASM biliyormuyum Allah'a şükür.
Hangisi daha elemanter?
Hangisinde ıvır zıvır bilgi öğrenmem lazım? Bana ne x adamın yazdığı kütüphanede hangi fonksiyonlar var bunların parametreleri ne?

Olay tamamen ne tip projeler yapmak istemenizde.

Alıntı Yaphocam bu bahsettiğin arkadaşların problemi dil seçimi değil. problem bilgisizlik..

Ben de bunu diyorum bilgi olduktan sonra C diye diretmenin anlamı yok. ASM ile de olur.

---------------

Bana göre C ile kodlama yapanların süper zengin yatlı katlı, Ferrarili, 4..5 sevgilisi olan acaip sosyal adamlar olması lazım.

Neden mi?

Düşünsenize kodlamayı çok hızlı yapıyorsun işi şipşak bitiriyorsun.  Kısa sürede çok iş yaptığın için de acaip te para kazanıyorsun.

Hep para hep para değil biraz da sosyal olmak lazım. Madem iş çabuk bitiyor öğle yemeğine bile kalmadan saat 11'ye doğru alır çantamı geçirir kafama şapkamı ve dönerim asm ile kod yazmaya çalışan sefil arkadaşlarıma gıcıklık için çakarım bir asker selamı,  siz asm ile boğuşun Abbas kaçar yarın sabah  görüşürüz der fitness salonlarına at yarışlarına yada hatunlarla takılmaya, vals, tango falan yapmaya giderim.

Ama malesef öyle olmuyor.

Dediğim gibi bu minik kartlarla yapılan ne projelerinden bahsediyoruz. Ben OS yazmıyorum. C ile kodlayan arkadaşlarım da OS yazmıyor. Otomasyon vs vs işi yapıyoruz.
Sen de muhtemelen işyerinde C ile led yakıp söndürmüyorsundur. Senin işlerin için C lazımdır.

Bizim projelerde bazen bir opamplı devrenin eşdeğeri yazılım yeterli olur.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Yuunus

@z hocam gülmekten karnım ağrıdı nerden aklına geldı bu mısal Biz özgür kızlarız. Siz ise aile kızları. Sizi aile ve çevre baskılar. Biz kafamıza eseni yaparız. Bu yüzden sizin kodlarınız hemen hemen hep düzgün çalışır. Biz bazen hata yapar kötü yola düşeriz.

z

Örnek güzel hocam.

Disiplin artarsa kontrol artarsa hatalı iş yapma durumu azalır. Başına buyruk olursan hatalı iş yapma ihtimalin artar.

ASM de başına buyruksun. Hele hele de protected modda çalışan bir işlemcide protected mod yetkilerini ele geçirirsen bir Allah'ın kulu sana heyt hüyt diyemez. Kral sensin. Artık sen hey hüyt etmeye başlarsın.

ASM'den uzaklaştıkça emir kulu olmaya başlarsın. Yok şöyle yapmayacan yok başını öne eğecen, yok şunla konuşmayacan.

Biz özgürüz abi gelemeyiz öyle baskılara.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

sovalye

@gerbay hocam agzinda tuy bitti, hala tam olarak doğru anlasilamadin ya uzuluyorum. Bakiyorum Bakiyorum buna sebep olacak bi cumle de bulamiyorum. Emeginiz sabriniz için çok teşekkür ediyorum benim adima oldukca ogreticiydi.

z

Başlık saçma.

Başlığı "Ebenizden kalma işlemcilere yazdığınız tekniklerle güncel mimarilere asm kod yazarsanız daha yavaş çalışır" şeklinde yazsaydı dilinde tüy bitmezdi.


Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

Hocam müslüman mahallesinde salyangoz satmak istiyorsun.

Bilgisayar mühendisliği büyük yazılımlar yapar. Elektronikçiler küçük yazılımlar yapar. Elektronikçilerimiz gerçek mesleklerini unutup yazılım ağırlıklı görece elektroniği az işlere kaydığı için asm'den falan uzaklaşıyorlar. Lojik devrelerden, analog devrelerden falan da uzaklaşıyorlar.

Öyle bir gün gelecek ki kütüphanesiz kod yazamaz hale gelecekler özel amaca yönelik çipler olmadan devre bile tasarlayamayacaklar.

İşin özü bu. Motor döndürmek vs dediğin basit küçük işler bu elektroniğin gerçekleri.

Daha önce yazmıştım gözünden kaçmıştır. Kimseye asm pompalamıyorum. C öğrenin diyorum. Fakat asm'ye atan tutanlara da kafa kaldırıyorum.

Haa yazdıklarımdan sonra asm'ye gönlü kayanlar varsa kaysın. Doğru yoldalar yada yanlış yoldalar demiyorum.

C ve asm gerçekleri ortada isteyen istediğini kullanır.

Konu başlığına hâla itirazım olduğu gibi  basit işler için RTOS kullananlara da saçmalıyorlar diyorum.

Tickless OS kavramından bana ne. Bana böyle sizin camiadaki kavramlarla gelme. Ne yapmak istiyorsun işin özünü söyle. Low power mı? Ona göre kod yazarız.
Amac tempest mi? Ona göre de yazarız. Gerekirse aldatmacalar da yaparız.

Taskları ister timer ile değiştiririm istersem ADC ile istersem Usart ile. İşte özgürlük bu.

OS yazan biriniin osunu bulacan da öğrenecen de he babam hee.

Yazıverecen işte. "Mutexini", "Semaphore"unu uyduracan lazımsa.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

Böyle yapma, böyle deme işte.

Sanıyorsun ki bütün projeler os istiyor acaip büyük verilerle cebelleşiliyor.

Sen olayları bilgisayar mühendisi gözüyle değerlendiriyorsun. Yazmıştım daha önce. Herkes farklı problemlerle uğraşıyor.

Bu forumda bilgisayar mühendislerinin yapması gereken projeleri elektronikçiler yapıyor. Yapmamalılar aslında. Elektronikçilerin yapması gereken işleri de yazılım işlerinin kıyısından köşesinden bulaşmışlar yapıyor.

Ondan sonra biri ötekine öğüt veriyor.

Bunun adı "boklu çamurluyu kınıyor".

Yahu os vs yazan bir adamın ne haddine motor yazılımı yapmak.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

tmcone

Programlamaya yeni başlayan birisi için işlemci mimarisini tanımak adına bir miktar assembly öğrenmek faydalı olacaktır. Bir
değişkenin (pozitif veya negatif) hafızada nasıl saklandığını, işlemcinin kapasitesini ve komutları ne şekilde çalıştırdığını bilmek
programlamayı sağlam temeller üzerine oturtmak açısından oldukça önemli. Bu sayede  hem karşılaşılan sorunlar daha kolayca çözebilir
hem de C/C++ da daha bilinçli kod yazabiliriz. Böylece seri porttan bir şekilde 1 byte data gönderebilirken "float" değişken nasıl
gönderilir ya da 8 bitlik işlemcide 16 bitlik değişkenin kesmeler aktiften veri bütünlüğü korunarak nasıl güncellenmesi gerekir?
şeklinde çok temel sorularla karşılaşmayacağız. Bunun dışında @gerbay ın belirttiği gibi birkaç istisnai durum dışında assembly
kullanmanın, zamanın verimsiz değerlendirilmesinden başka kayda değer bir sonucu olacağını zannetmiyorum. C de oluşturduğumuz bir
proje bile binlerce satır kod içermekteyken bunu assembly ile yazmaya çalışmak yalnızca satır sayısını artırmakla kalmayacak daha da
önemlisi muhtemel hata oranını da ciddi miktarda artıracaktır. Bunun yanında okunabilirlik ve taşınabilirlik de azalacak.

C ve assembly seçimi konusunda çok fazla konuşmaya gerek olmadığını düşünüyorum. Herkes istediğini kullanır. Dünyada ne kullanılıyor derseniz:
Perhaps a few critical code fragments will be written in assembly language. But according to a recent study by the Barr Group,
over 95 percent of embedded-system code today is written in C or C++.

http://systemdesign.altera.com/tomorrows-embedded-systems-programming-language-still-c/#figure01

------------------

"Functional Safety" için sadece işlemci seçimi yeterli değil. Normal bir işlemci ile bile gereksinimlerin karşılanması halinde
sertifika alınabilir. Adresleme, okuma, yazma, kaydetme, hesaplama vb. esnasında çeşitli nedenlerle birtakım hatalar oluşabilmekte.
Eğer devrede kalıcı hasar oluşturmadıysa bunlar "soft errors" olarak adlandırılmakta; yazılım ve/veya donanım tarafından sürekli
kontrol edilerek tespit edilebilirler ve hata giderilebilir. Bu hataların görülme oranı kalıcı (hard) hatalara nispeten çok
yüksektir. Daha fazla bilgi edinmek isteyenler IEC 61508 part 7 yi okuyabilirler. Ayrıca aşağıdaki dökümandan da (ST AN4750)
yararlanabilirler.
http://www.st.com/content/ccc/resource/technical/document/application_note/15/54/c4/5d/90/ed/4f/ce/DM00220769.pdf/files/DM00220769.pdf/jcr:content/translations/en.DM00220769.pdf

"Soft" hataları tespit etmek için başlangıçta ve çalışma esnasında periyodik olarak birtakım testler yapılmalıdır. Cpu birimlerinin
doğru çalışıp çalışmadığı, çevresel birimlere ait registerların uygulama tarafından atanmış değerlerden farklı bir değer alıp
almadığı, tüm hafıza birimlerinde (flash ve SRAM vb.) herhangi bir ya da birden fazla bitin değişip değişmediği, işlemcinin
belirlenenden çok sık ya da daha az kesmeye girip girmediği, yazılımın olağan akışı içinde olup olmadığı, çalışma frekansının belirli
toleranslar dahilinde olup olmadığı gibi.Ayrıca hesaplama yapılırken aynı sonucu üretecek farklı yollar kullanılarak sonuçlar
kıyaslanabilir. Değişkenler hafızanın birbirinden uzak alanlarında biri normal şekilde diğeri terslenip saklanabilir(buradaki yöntem
hatanın bir bölgeyi etkileyeceği hipotezine dayandırılmaktadır). İşlemci dışında ise çift sensör ve çıkışların kullanılması gerekir.
Örneğin dijital giriş okunurken MCU nun fiziksel olarak ardışıl olmayan farklı portlardaki iki pini tercih edilmelidir. Benzer
şekilde dual çıkışlı sensör kullanıp bunlar farklı ADC modüllerine girilmelidir. Birde fazla işlemcili (örneğin: 32 bitlik ana işlemci ile
8 bitlik monitor işlemci kullanımı ya da özdeş donanımlar) yapılar da sıklıkla tercih edilmektedir. Bunları daha da detaylandırmak mümkün...
İlgilenenler standartları (IEC 61508-tüm gömülü sistemler, ISO 13849-makina, ISO 26262-otomotiv vb) okuyabilirler.
Bu şekilde yazılım ve donanım kontrolleri yapılarak sertifikasyon elde edilebilir. Örnek olarak:
http://www.st.com/content/st_com/en/products/embedded-software/mcus-embedded-software/stm32-embedded-software/stm32-3rd-party-embedded-software/stm32-safesil.html

Bu yöntemin yani işlemcinin donanımsal desteğe sahip olmamasının dezavantajı ise geçici hataları tespit etmek mümkün olmayabilir.
İşlemci bir yandan uygulamanızı çalıştırırken diğer yandan da sürekli kontrol kodlarını çalıştırmak durumunda. Bu kodların ne kadar
sıklıkla çalışacağı PST (Process Safety Time) göz önüne alınarak hesaplanmalıdır. Bu süre milisaniye mertebesinde olabilir. Eğer
uygulamanızda kritik zamanlama gereken kısımlar varsa ya da tepki süreniz kısa olması gerekiyorsa güvenlik kodlarını çalıştırmak için
yeterli vaktiniz olmayabilir veya yapsanız dahi hata tespit mekanizmanız kapsamlı (diagnostic coverage) olmayabilir. Bu nedenle
donanımsal destek olmadan bazı uygulamaları yapmak mümkün olmayabilir. Bu bağlamda yarıiletken üreticileri birçok ürün çıkarmakta.
Örneğin TI in Hercules serileri dışında Infineon AURIX, NXP ve ST nin PowerPC tabanlı MPC 5XXX, SPC 5XXX serileri, Toshiba, Renesas
vb. safety işlemcileri mevcut. Sertifikasyon risk analizi (örn. EN 12100), planlama, "reliability" hesaplamaları, implementasyon,
validasyon, testler, dökümantasyon gibi birçok konuyu içerdiğinden sadece safety işlemci kullanmak yeterli olmayacaktır.

Avrupada yalnızca otomotiv ya da medikal ürünler için değil endüstriyel uygulamalar için de SIL sertifikalı ürünlere ciddi bir talep
var. PLC ve kontrol üniteleri (ECU) dışında sensörler, röleler vb ürünler için de sertifikalı ürünler tercih ediliyor. Umarım
ülkemizde de bu konuda güzel çalışmalar ortaya çıkar.

engerex

 Aslında bir galip aramaya yok. Çünkü her iki tarafta haklı görülüyor. Eğer yanlışsam düzeltin.
@gerbay ASM kullanmanın genel anlamda gereksiz olduğunu belirtmiş. Günümüzde donanım hızları da ve hafıza miktarları da gayet yeterli. Yeni donanım teknolojileri ve derleyiciler ile işlemciler çok daha verimli kullanılıyor. ASM ile kod yazmak yeni teknolojilerle artık çokta gerekli bir konu değil.

@z ise ASM ile donanıma her türlü hükmederim. Siz sadece ne yapmak istediğinizi söyleyin. Bu zamana kadar kullanmadığım komutlar/vs. ne var ise kısa sürede mantığı kavrayarak uygularım. Nabza göre şerbet. Başkasının yazdığı sayfalar dolusu kütüphaneyi öğrenmeye çabalayacağıma kendi ihtiyacım olan kadarını kendim kodlarım ve yine olaya hükmederim. Bu ilkemdende vazgeçmem. Eğer ben bunları yapabiliyorsam yapılabilinir demektir.

Ama sanırım ortak nokta ASM bilsinler C kullansınlar.

Eğer Intel bizim derleyicimiz GCC ve Microsoft ile kıyaslandığında şu konularda 1.2x, 1.3x, 1.5x kat daha performanslıdır diyorsa derleyiciler arasında ciddi fark var demektir.
@gerbay 'ın belirttiği gibi güvenlik için Ti 'ın safety MCU'larını tercih edip "GNU dan vazgeçmem/ARM Compiler 6 en yenisi, kullanmalıyım." derseniz topal safety oluyor. Çünkü güvenlik sertifikasına sahip olan ARM Compiler 5 (kaynak ARM website).

RaMu

@gerbay hocamın yazdığı mesajları benden başka okuyan yok anlaşılan,
hatta kendi dahi okumuyor,
daha önce söylemek istemedim ama aynı hatalı mesaj tekrarlandığı için belirteyim:

Alıntı yapılan: gerbay - 10 Eylül 2016, 11:33:26
...

Senin kafadaki insanlar öyle başına buyruk iş yaptığı için radyoterapi cihazı basmış insanlara radyasyonu, kimini yakmış, kimini öldürmüş..  Therac-25 i yazdık konuya.. 
...
şuna bir göz at istersen ( An investigation of the Therac-25 Accidents );

http://www.cs.umd.edu/class/spring2003/cmsc838p/Misc/therac.pdf

özellikle 3. sayfada "Therac-25 software development and design" kısmını mutlaka okuyun.. 

(Resim gizlendi görmek için tıklayın.)

Verdiğiniz bu fotoda ve daha önceki linkdede
daha önceki modelin yanlışlıkla verilebilecek yüksek dozu önlemek için
DONANIMSAL bir geri besleme ve interlok sisteminin olduğu,
yeni modelde daha ucuza gelsin diye bu sistemin çıkarıldığı,
nede olsa bu işi yazılım halleder kafasıyla düşünüldüğü
yazmışlar.
Yani ASM ile bir ilgisi yok delikli kartlada yazsaydı,
kabloya ferit nüve dizerekte (Whirlwind, magnetic core memory) yapsaydı,
C ilede yazsaydı değişen bir şey olmayacaktı.

Şuan benim çalıştığım iştede aynı durum geçerli,
bizde donanımsal interlok kullanıyoruz,
ve bu interloğa harici müdahale edilip edilmediğinede kontrol ediyoruz,
sistemden verdiğimiz çıkışların geri beslemesi var, verdiğimiz sinyalin ne yaptığını gözlemliyoruz,
yazılımda aldığımız önlemler kadar donanımdada önlem var,
sistemin bir kartından diğerine giden çıkışlarda
kritik noktalarda sinyalin kendi ve terside gidiyor,
dahada önlemler var ...
Şirkette 80 civarı çalışan, 2 tanede biri ben,
yazılım ve elektronik kısmı tasarlayan, prototipini üreten test eden, seri üretimi yöneten var.
Belki 800 tane işletmecide bizim ürünlerimizi alıp,
5-20 civarı çalışanı ile işlerini yürütüyorlar.

Şimdi size yazmak zor geliyor,
bana asm ile şuan hatasız yapabildiğim işi,
ASM yi kenara bırak,
şunla yap derken ne kadar ciddi olduğunuzu görmek,
benim ne kadar işime yarayacağını gösterebilmenizi istiyorum.
Yanlış bir şey mi istiyorum,
sizin görüşünüzün tersi bir şey söylendiğinde,
yazdıklarınız kabullenilmediğinde hemen küstüm küstüm diyorsunuz,
hatalıda bilgisizde biz oluyoruz,
biz anlamıyorsak, siz anlatamıyorsanız, bir şeyde biliyorsanız yazın faydalanalım,
gereksiz naz yapmayın hocam, yazın lütfen,
biz sizi zorluyoruz, sizde bizi zorlayın, dahada değerli bilgiler çıksın ortaya, herkes faydalansın, feyz alsın.

Alıntı yapılan: gerbay - 10 Eylül 2016, 14:25:32
Tüm bu standartlar, kurallar vs. bizim motor döndürmemizden haz etmeyen, bizi istemeyen batılıların uydurmaları.

Şaka bi yana, @tmcone hocam klavyene sağlık



Sizden de @tmcone tadında mesajlar bekliyorum aslında hocam,
daha önce sordum,
bu anlattığınız standartlar nerelerde zorunlu,
ben bunu bilirsem kimlerin önüne geçerim,
nerelere yükselir ne gibi işler yapabilirim,
ben ve benden dahada genç olan,
veya halen üniversitelerde okumakta olan arkadaşlar için
anlatın, sizin deyiminizle bilginizin zekatını verin.



Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html