{"id":154,"date":"2014-11-06T22:33:09","date_gmt":"2014-11-06T20:33:09","guid":{"rendered":"http:\/\/ozenozkaya.com\/blog\/?p=154"},"modified":"2014-11-06T22:33:09","modified_gmt":"2014-11-06T20:33:09","slug":"gomulu-sistemler-12-gomulu-programlamaya-giris","status":"publish","type":"post","link":"http:\/\/ozenozkaya.com\/blog\/?p=154","title":{"rendered":"G\u00f6m\u00fcl\u00fc C &#8211; 1 : G\u00f6m\u00fcl\u00fc Programlama Yol Haritas\u0131"},"content":{"rendered":"<p><strong>YOL HAR\u0130TASI<\/strong><\/p>\n<p>D\u00fc\u015f\u00fcnd\u00fcm yaz\u0131n\u0131n ba\u015fl\u0131\u011f\u0131n\u0131, daha g\u00fczel ifade edemedim. Bu yaz\u0131da, bu yaz\u0131 dizisine ili\u015fkin\u00a0hayallerimi, yol haritas\u0131n\u0131 anlataca\u011f\u0131m ve umuyorum ki hepsi ad\u0131m ad\u0131m ger\u00e7ekle\u015fecek. Kararl\u0131l\u0131kla, sab\u0131rla ger\u00e7ekle\u015fecek. Ve diliyorum ki \u00a0hayat\u0131m\u0131za bir katk\u0131 sa\u011flanabilecek. E\u011fer bu yol haritas\u0131n\u0131 sonuna kadar okuduysan\u0131z, ama heyecanlanmad\u0131ysan\u0131z l\u00fctfen yaz\u0131 dizisine devam etmeyin.<\/p>\n<p>\u00d6nceki yaz\u0131larda g\u00f6m\u00fcl\u00fc sistemler i\u00e7in gerekli donan\u0131m altyap\u0131s\u0131n\u0131 tahsis etmeye katk\u0131 sa\u011flamaya\u00a0\u00e7al\u0131\u015fm\u0131\u015ft\u0131m. Nihayetinde heyecanla bekledi\u011fim an geldi \u00e7att\u0131 \ud83d\ude42 Yaz\u0131 dizisinin bu b\u00f6l\u00fcm\u00fcnde her yerde bulunabilecek bilgilere referans vererek, her yerde bulanamayacak bilgileri payla\u015fmaya \u00e7al\u0131\u015faca\u011f\u0131m. Payla\u015f\u0131rken de \u00f6yle s\u0131k\u0131c\u0131 \u015fekilde de\u011fil de, sohbet muhabbet tad\u0131nda payla\u015fmaya \u00e7al\u0131\u015faca\u011f\u0131m. Neyse \u015fimdi laga-lugay\u0131 k\u0131sa kesip konuya gireyim \ud83d\ude42<\/p>\n<p>Malumunuz g\u00f6m\u00fcl\u00fc sistemler k\u0131s\u0131tl\u0131 kaynakl\u0131 sistemler. Gel gelelim bu ifade art\u0131k, her durumda do\u011fru bir ifade say\u0131lmaz. Hakikaten bir \u00e7ok g\u00f6rev i\u00e7in son derece &#8220;k\u0131s\u0131tl\u0131 kaynakl\u0131&#8221; olarak de\u011ferlendirilebilecek sistemlerin yan\u0131nda baya\u011f\u0131 baya\u011f\u0131 &#8220;bol kaynakl\u0131&#8221; g\u00f6m\u00fcl\u00fc sistemler de mevcut. Bir &#8220;g\u00f6m\u00fcl\u00fc webserver&#8221; yapmak i\u00e7in Microchip firmas\u0131n\u0131n PIC16F84A mikrokontol\u00f6r\u00fc \u00e7ok k\u0131s\u0131tl\u0131 kaynakl\u0131 kalabilir, \u00f6te yandan bu i\u015f ARM Cortex A15 bar\u0131nd\u0131ran, do\u011fru tasarlanm\u0131\u015f bir g\u00f6m\u00fcl\u00fc sistem i\u00e7in genelde \u00e7ocuk oyunca\u011f\u0131n\u0131n bir ka\u00e7 mertebe alt\u0131nda bir i\u015ftir. S\u00f6z\u00fcn \u00f6z\u00fc, k\u0131s\u0131tl\u0131 kaynak, spesifik\u00a0bir g\u00f6rev i\u00e7in s\u00f6z konusudur. Ancak yine de, rekabette var olabilmek i\u00e7in genelde bir i\u015fi olabilecek en ucuz ve en kaliteli \u015fekilde yapmak, ama\u00e7t\u0131r. Bu da kaynaklar\u0131n k\u0131s\u0131tl\u0131 kalmas\u0131na neden olur.<\/p>\n<p>Kaynaklar k\u0131s\u0131tl\u0131 oldu\u011fu gibi, zaman da \u00e7o\u011funlukla k\u0131s\u0131tl\u0131d\u0131r. Bu sebeple yaz\u0131lan kodlar\u0131n son derece optimize, kolay anla\u015f\u0131labilir, tekrar kullan\u0131labilir, yani asl\u0131nda &#8220;kaliteli&#8221; olmas\u0131 gerekmektedir. Efendim yaz\u0131l\u0131m neye g\u00f6re kaliteli olacak? Meselenin asl\u0131 ortaya kondu mu, cevap bulmak kolay olur demi\u015fler(N.E.). Cevap basit, &#8220;yaz\u0131l\u0131m tasar\u0131m\u0131 kalitesi standartlar\u0131na&#8221; g\u00f6re kaliteli olacak. Yani isim verecek olursak ISO\/IEC-14598, ISO\/IEC 250&#215;0 standart serisine g\u00f6re. Evet, sizi duyar gibiyim ve\u00a0ben de ayn\u0131 fikirdeyim ama var i\u015fte yaz\u0131l\u0131m kalitesinin de standard\u0131 \ud83d\ude42<\/p>\n<p>Efendim neymi\u015f bu standartlar? Standartlar m\u0131 y\u00f6netecek bizi? Hay\u0131r efendim, standartlar y\u00f6netmeyecek, standartlar tan\u0131mlar\u0131 yapacak, ortak dili belirleyecek sonra biz o ortak dilden konu\u015faca\u011f\u0131z ve yaz\u0131l\u0131mlar\u0131m\u0131z\u0131n kalitesini \u00f6l\u00e7\u00fclebilir hale getirece\u011fiz. \u0130yi tamam, ama g\u00f6m\u00fcl\u00fc sistemler ne alaka? G\u00f6m\u00fcl\u00fc sistemler, belki de kaliteli tasar\u0131ma en \u00e7ok ihtiya\u00e7 duyulan yaz\u0131l\u0131m tasar\u0131m ortam\u0131d\u0131r. Zaten zaman k\u0131s\u0131tl\u0131, kaynaklar k\u0131s\u0131tl\u0131, i\u015fin i\u00e7inde donan\u0131m oldu\u011fundan de\u011fi\u015fkenlerin say\u0131s\u0131 \u00e7ok fazla, \u00fcr\u00fcn s\u00fcrekli g\u00fcncelleniyor gibi bir ton sebep, rekabette \u00f6ne ge\u00e7mek i\u00e7in tasar\u0131m\u0131n kaliteli olmas\u0131n\u0131 zorunlu k\u0131l\u0131yor. \u0130yi de madem standard var, ben ne konu\u015fuyorum? Dedim ya standardlar sadece ortak dili anlat\u0131yor ve baz\u0131 \u00f6l\u00e7\u00fcm y\u00f6ntemlerini belirliyor. \u0130yi olana gitmek bize kal\u0131yor. Dil ortak ama ne konu\u015faca\u011f\u0131m\u0131z\u0131 yine biz belirliyoruz.<\/p>\n<p>Bu yaz\u0131 dizisinde C dili, C++ dili anlat\u0131lmayacak. <a href=\"http:\/\/www.dr.com.tr\/kitap\/c-ve-c-deitel-deitel\/kolektif\/egitim-basvuru\/bilgisayar\/urunno=0000000168583\">Deitel&amp;Deitel&#8217;in kitab\u0131<\/a> o i\u015fi \u00e7ok \u00e7ok iyi yap\u0131yor. Ancak bu yaz\u0131 dizisinde onun yerine, sanatsal seviyede programlama pratikleri, g\u00f6m\u00fcl\u00fc sistemlere \u00f6zel tasar\u0131m kal\u0131plar\u0131, modelleme y\u00f6ntemleri ve iyi programlama pratikleri anlat\u0131lacak. Bunlar\u0131n bir k\u0131sm\u0131n\u0131n, benim bildi\u011fim bir ka\u00e7 d\u00fczine \u00f6nemli kitaplarda dahi yer almad\u0131\u011f\u0131n\u0131 belirtmek isterim. Uzmanlar i\u00e7in bile faydal\u0131 olabilecek bir iki numaram oldu\u011funu d\u00fc\u015f\u00fcn\u00fcyorum \ud83d\ude42 Peki nas\u0131l olacak? Her \u015feyden \u00f6nce sab\u0131rla, sebatla, ilim irfan a\u015fk\u0131yla, azimle olacak. Her zaman yapt\u0131\u011f\u0131m\u0131z gibi, bitirememek \u00fczere ba\u015flad\u0131\u011f\u0131m\u0131z 1632. i\u015f olmayacak bu. \u00d6nce e\u011fer C bilmiyorsan\u0131z, bir kaynaktan C \u00f6\u011freneceksiniz. \u00d6nerdi\u011fim kaynak\u00a0Deitel&amp;Deitel&#8217;in kitab\u0131. Ard\u0131ndan bu yaz\u0131 dizisini okudu\u011funuzda hakikaten keyif alacaks\u0131n\u0131z. Ger\u00e7i bir dili\u00a0bilmek iddias\u0131 fazla \u00f6zg\u00fcvenlice bir iddia bence, her zaman birbirimizden \u00f6\u011frenecek \u015feylerimiz var o ayr\u0131 mevzu ama C dilini zaten biliyorsan\u0131z do\u011frudan yaz\u0131lara devam edebilirsiniz. B\u00f6ylelikle g\u00f6m\u00fcl\u00fc sistemler i\u00e7in \u00e7ok net, ta\u015f gibi bir yaz\u0131l\u0131m alt yap\u0131s\u0131 edinmi\u015f olacaks\u0131n\u0131z. Zaten varsa da onu cilalam\u0131\u015f olacaks\u0131n\u0131z. Yaz\u0131da C ile birlikte C++ konseptlerine de de\u011finece\u011fim.<\/p>\n<p>Sonra ne olacak? Yaz\u0131 dizisi nas\u0131l devam edecek? Donan\u0131m bilgisi olu\u015ftu, yaz\u0131l\u0131m bilgisi k\u00fclt\u00fcr\u00fc olu\u015ftu, s\u0131rada ne olacak. S\u0131rada art\u0131k ellerin kirlenmesi var. Microchip firmas\u0131n\u0131n 8 bitlik PIC mikrodenetleyicilerini programlama&#8217;y\u0131 ince detaylarla anlataca\u011f\u0131m. Bu sayede k\u00fc\u00e7\u00fck bir sistemde \u00e7al\u0131\u015fman\u0131n faydalar\u0131n\u0131, \u00a0temelleri ve detaylar\u0131 tertemiz g\u00f6rmeyi \u00f6\u011frenece\u011fiz. Ayn\u0131 zamanda basit s\u00fcr\u00fcc\u00fcler yazaca\u011f\u0131z, sens\u00f6rleri ve komponentleri tan\u0131yaca\u011f\u0131z. Ard\u0131ndan Atmel firmas\u0131n\u0131n Atmega serisi ile analoji kuraca\u011f\u0131m, onu her \u015feyiyle kullanmay\u0131 da anlataca\u011f\u0131m. Burada araya Arduino&#8217;nun i\u00e7 yap\u0131s\u0131n\u0131, anlat\u0131lmayanlar\u0131n\u0131 s\u0131k\u0131\u015ft\u0131raca\u011f\u0131m, malum \u00e7o\u011funun i\u00e7inde Atmega var. Sonra 16 bitlik bir mikrodenetleyici serisine ge\u00e7ece\u011fiz. Ayn\u0131 zamanda bu ultra-low power bir seri olacak; Texas Instruments MSP430 serisi. Buradan hem 16-bit&#8217;lik bir mikrodenetleyici nas\u0131l kullan\u0131l\u0131r, fark\u0131 nedir, low-power sistem tasarlaman\u0131n p\u00fcf noktalar\u0131 nedir onlar\u0131 da anlataca\u011f\u0131m. Sonra gelece\u011fiz ARM Cortex M3-M4 serisi i\u015flemci bar\u0131nd\u0131ran 32-bit&#8217;lik mikrodenetleyicilere. Burada da STM32 ve LPC17 serisinden \u00f6rnekler verece\u011fim. Hemen hemen ayn\u0131 \u015feyler, ama ayn\u0131l\u0131klar\u0131 farkl\u0131l\u0131klar\u0131 bilmek bence \u00f6nemli bir bilgi seti olacak. Ayn\u0131 zamanda DMA gibi, EMC gibi yepyeni mod\u00fclleri tan\u0131yaca\u011f\u0131z. Bu sayede mikrokontol\u00f6rlerin t\u00fcm \u00e7evresellerine h\u00fck\u00fcmdar olaca\u011f\u0131z. TFT ekran, thermal printer, manyetik kart okuyucu, rf modem gibi cihazlar ile\u00a0\u00e7al\u0131\u015faca\u011f\u0131z, sens\u00f6rler kullanaca\u011f\u0131z. Seviye atlam\u0131\u015f olaca\u011f\u0131z. Burada RTOS kullanman\u0131n inceliklerine de de\u011finece\u011fim. \u00c7ok \u00e7ok \u00f6nemli bir bilgi seti RTOS. Ya sonra? Bitmedi mi bu mikrokontrol\u00f6rler filan? Hay\u0131r efendim bitmedi. \u00c7ok \u00e7ekirdekli sistemler nas\u0131l programlan\u0131r onu anlataca\u011f\u0131m. 64-bit&#8217;lik platformlara de\u011finece\u011fim. Malum son IPhone&#8217;larda 64 bitlik i\u015flemciler var, neticede o da g\u00f6m\u00fcl\u00fc sistem. Ya sonra? Sonra 32-bit&#8217;e d\u00f6nece\u011fiz ama mikrobilgisayar seviyesindeki \u00e7ekirdekleri inceleyece\u011fiz. Burada g\u00f6m\u00fcl\u00fc linux ile platform baz\u0131nda kapan\u0131\u015f\u0131 yapaca\u011f\u0131m. Kafama eserse VxWorks de yazabilirim ama elzem de\u011fil. En sonunda a\u00e7\u0131k kaynakl\u0131 yaz\u0131l\u0131mlarla \u00e7al\u0131\u015fma, a\u00e7\u0131k kaynak lisans tiplerine de\u011finece\u011fiz.<\/p>\n<p>Burada yaz\u0131 dizisi sonlanacak san\u0131yorsan\u0131z yan\u0131l\u0131rs\u0131n\u0131z. Neticesinde<strong> sadece g\u00f6m\u00fcl\u00fc sistem temeli<\/strong> tahsis edilmi\u015f olacak. Ama \u00f6yle bir temel ki, \u00fcst\u00fcne art\u0131k ne kurarsan kur. Sonra her telden \u00e7alaca\u011f\u0131z, ba\u015f\u0131na g\u00f6m\u00fcl\u00fc etiketi koyaca\u011f\u0131z. Ne demek istiyorum? G\u00f6m\u00fcl\u00fc g\u00f6r\u00fcnt\u00fc i\u015fleme yapaca\u011f\u0131z. G\u00f6m\u00fcl\u00fc kontrol sistemi tasarlayaca\u011f\u0131z. G\u00f6m\u00fcl\u00fc haberle\u015fme tekniklerini a\u011flataca\u011f\u0131z, havadan karadan giden gelen veriye h\u00fckmedece\u011fiz. G\u00f6m\u00fcl\u00fc sistemlerde pastan\u0131n \u00fcst\u00fcne \u00e7ilekler koyaca\u011f\u0131z, kriptopgrafi yapaca\u011f\u0131z. Sonra FPGA konu\u015furuz. Sonra PSOC konu\u015furuz. Ve daha nicesi \ud83d\ude42<\/p>\n<p>Bu yol uzun olacak, zaman alacak, fedakarl\u0131k isteyecek ama yol bu olacak. Her t\u00fcrl\u00fc \u00f6neriye a\u00e7\u0131k oldu\u011fumu da belirtmek isterim. \u00dclkemizin, teknoloji \u00fcretiminde ileriye gitmesine, yani sizlere, hayat\u0131m\u0131za\u00a0bir nebze\u00a0katk\u0131da bulunabilirsem ne mutlu bana.<\/p>\n<p>\u015eimdi devam.<\/p>\n<a href=\"http:\/\/ozenozkaya.com\/blog\/\" class=\"su-button su-button-style-3d\" style=\"color:#FFFFFF;background-color:#2D89EF;border-color:#246ec0;border-radius:5px\" target=\"_self\"><span style=\"color:#FFFFFF;padding:6px 16px;font-size:13px;line-height:20px;border-color:#6cadf4;border-radius:5px;text-shadow:none\"><i class=\"sui sui-arrow-circle-o-left\" style=\"font-size:13px;color:#FFFFFF\"><\/i> \u00d6nceki Sayfa<\/span><\/a> \u00a0<a href=\"http:\/\/ozenozkaya.com\/blog\/?p=172\" class=\"su-button su-button-style-3d\" style=\"color:#FFFFFF;background-color:#2D89EF;border-color:#246ec0;border-radius:5px\" target=\"_self\"><span style=\"color:#FFFFFF;padding:6px 16px;font-size:13px;line-height:20px;border-color:#6cadf4;border-radius:5px;text-shadow:none\"><i class=\"sui sui-arrow-circle-right\" style=\"font-size:13px;color:#FFFFFF\"><\/i> Sonraki Sayfa<\/span><\/a>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>YOL HAR\u0130TASI D\u00fc\u015f\u00fcnd\u00fcm yaz\u0131n\u0131n ba\u015fl\u0131\u011f\u0131n\u0131, daha g\u00fczel ifade edemedim. Bu yaz\u0131da, bu yaz\u0131 dizisine ili\u015fkin\u00a0hayallerimi, yol haritas\u0131n\u0131 anlataca\u011f\u0131m ve umuyorum ki hepsi ad\u0131m ad\u0131m ger\u00e7ekle\u015fecek. Kararl\u0131l\u0131kla, sab\u0131rla ger\u00e7ekle\u015fecek. Ve diliyorum ki \u00a0hayat\u0131m\u0131za bir katk\u0131 sa\u011flanabilecek. E\u011fer bu yol haritas\u0131n\u0131 sonuna kadar okuduysan\u0131z, ama heyecanlanmad\u0131ysan\u0131z l\u00fctfen yaz\u0131 dizisine devam etmeyin. \u00d6nceki yaz\u0131larda g\u00f6m\u00fcl\u00fc sistemler i\u00e7in gerekli <a class=\"read-more\" href=\"http:\/\/ozenozkaya.com\/blog\/?p=154\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_tr_post_content":"<strong>YOL HAR\u0130TASI<\/strong>\n\nD\u00fc\u015f\u00fcnd\u00fcm yaz\u0131n\u0131n ba\u015fl\u0131\u011f\u0131n\u0131, daha g\u00fczel ifade edemedim. Bu yaz\u0131da, bu yaz\u0131 dizisine ili\u015fkin\u00a0hayallerimi, yol haritas\u0131n\u0131 anlataca\u011f\u0131m ve umuyorum ki hepsi ad\u0131m ad\u0131m ger\u00e7ekle\u015fecek. Kararl\u0131l\u0131kla, sab\u0131rla ger\u00e7ekle\u015fecek. Ve diliyorum ki \u00a0hayat\u0131m\u0131za bir katk\u0131 sa\u011flanabilecek. E\u011fer bu yol haritas\u0131n\u0131 sonuna kadar okuduysan\u0131z, ama heyecanlanmad\u0131ysan\u0131z l\u00fctfen yaz\u0131 dizisine devam etmeyin.\n\n\u00d6nceki yaz\u0131larda g\u00f6m\u00fcl\u00fc sistemler i\u00e7in gerekli donan\u0131m altyap\u0131s\u0131n\u0131 tahsis etmeye katk\u0131 sa\u011flamaya\u00a0\u00e7al\u0131\u015fm\u0131\u015ft\u0131m. Nihayetinde heyecanla bekledi\u011fim an geldi \u00e7att\u0131 :) Yaz\u0131 dizisinin bu b\u00f6l\u00fcm\u00fcnde her yerde bulunabilecek bilgilere referans vererek, her yerde bulanamayacak bilgileri payla\u015fmaya \u00e7al\u0131\u015faca\u011f\u0131m. Payla\u015f\u0131rken de \u00f6yle s\u0131k\u0131c\u0131 \u015fekilde de\u011fil de, sohbet muhabbet tad\u0131nda payla\u015fmaya \u00e7al\u0131\u015faca\u011f\u0131m. Neyse \u015fimdi laga-lugay\u0131 k\u0131sa kesip konuya gireyim :)\n\nMalumunuz g\u00f6m\u00fcl\u00fc sistemler k\u0131s\u0131tl\u0131 kaynakl\u0131 sistemler. Gel gelelim bu ifade art\u0131k, her durumda do\u011fru bir ifade say\u0131lmaz. Hakikaten bir \u00e7ok g\u00f6rev i\u00e7in son derece \"k\u0131s\u0131tl\u0131 kaynakl\u0131\" olarak de\u011ferlendirilebilecek sistemlerin yan\u0131nda baya\u011f\u0131 baya\u011f\u0131 \"bol kaynakl\u0131\" g\u00f6m\u00fcl\u00fc sistemler de mevcut. Bir \"g\u00f6m\u00fcl\u00fc webserver\" yapmak i\u00e7in Microchip firmas\u0131n\u0131n PIC16F84A mikrokontol\u00f6r\u00fc \u00e7ok k\u0131s\u0131tl\u0131 kaynakl\u0131 kalabilir, \u00f6te yandan bu i\u015f ARM Cortex A15 bar\u0131nd\u0131ran, do\u011fru tasarlanm\u0131\u015f bir g\u00f6m\u00fcl\u00fc sistem i\u00e7in genelde \u00e7ocuk oyunca\u011f\u0131n\u0131n bir ka\u00e7 mertebe alt\u0131nda bir i\u015ftir. S\u00f6z\u00fcn \u00f6z\u00fc, k\u0131s\u0131tl\u0131 kaynak, spesifik\u00a0bir g\u00f6rev i\u00e7in s\u00f6z konusudur. Ancak yine de, rekabette var olabilmek i\u00e7in genelde bir i\u015fi olabilecek en ucuz ve en kaliteli \u015fekilde yapmak, ama\u00e7t\u0131r. Bu da kaynaklar\u0131n k\u0131s\u0131tl\u0131 kalmas\u0131na neden olur.\n\nKaynaklar k\u0131s\u0131tl\u0131 oldu\u011fu gibi, zaman da \u00e7o\u011funlukla k\u0131s\u0131tl\u0131d\u0131r. Bu sebeple yaz\u0131lan kodlar\u0131n son derece optimize, kolay anla\u015f\u0131labilir, tekrar kullan\u0131labilir, yani asl\u0131nda \"kaliteli\" olmas\u0131 gerekmektedir. Efendim yaz\u0131l\u0131m neye g\u00f6re kaliteli olacak? Meselenin asl\u0131 ortaya kondu mu, cevap bulmak kolay olur demi\u015fler(N.E.). Cevap basit, \"yaz\u0131l\u0131m tasar\u0131m\u0131 kalitesi standartlar\u0131na\" g\u00f6re kaliteli olacak. Yani isim verecek olursak ISO\/IEC-14598, ISO\/IEC 250x0 standart serisine g\u00f6re. Evet, sizi duyar gibiyim ve\u00a0ben de ayn\u0131 fikirdeyim ama var i\u015fte yaz\u0131l\u0131m kalitesinin de standard\u0131 :)\n\nEfendim neymi\u015f bu standartlar? Standartlar m\u0131 y\u00f6netecek bizi? Hay\u0131r efendim, standartlar y\u00f6netmeyecek, standartlar tan\u0131mlar\u0131 yapacak, ortak dili belirleyecek sonra biz o ortak dilden konu\u015faca\u011f\u0131z ve yaz\u0131l\u0131mlar\u0131m\u0131z\u0131n kalitesini \u00f6l\u00e7\u00fclebilir hale getirece\u011fiz. \u0130yi tamam, ama g\u00f6m\u00fcl\u00fc sistemler ne alaka? G\u00f6m\u00fcl\u00fc sistemler, belki de kaliteli tasar\u0131ma en \u00e7ok ihtiya\u00e7 duyulan yaz\u0131l\u0131m tasar\u0131m ortam\u0131d\u0131r. Zaten zaman k\u0131s\u0131tl\u0131, kaynaklar k\u0131s\u0131tl\u0131, i\u015fin i\u00e7inde donan\u0131m oldu\u011fundan de\u011fi\u015fkenlerin say\u0131s\u0131 \u00e7ok fazla, \u00fcr\u00fcn s\u00fcrekli g\u00fcncelleniyor gibi bir ton sebep, rekabette \u00f6ne ge\u00e7mek i\u00e7in tasar\u0131m\u0131n kaliteli olmas\u0131n\u0131 zorunlu k\u0131l\u0131yor. \u0130yi de madem standard var, ben ne konu\u015fuyorum? Dedim ya standardlar sadece ortak dili anlat\u0131yor ve baz\u0131 \u00f6l\u00e7\u00fcm y\u00f6ntemlerini belirliyor. \u0130yi olana gitmek bize kal\u0131yor. Dil ortak ama ne konu\u015faca\u011f\u0131m\u0131z\u0131 yine biz belirliyoruz.\n\nBu yaz\u0131 dizisinde C dili, C++ dili anlat\u0131lmayacak. <a href=\"http:\/\/www.dr.com.tr\/kitap\/c-ve-c-deitel-deitel\/kolektif\/egitim-basvuru\/bilgisayar\/urunno=0000000168583\">Deitel&amp;Deitel'in kitab\u0131<\/a> o i\u015fi \u00e7ok \u00e7ok iyi yap\u0131yor. Ancak bu yaz\u0131 dizisinde onun yerine, sanatsal seviyede programlama pratikleri, g\u00f6m\u00fcl\u00fc sistemlere \u00f6zel tasar\u0131m kal\u0131plar\u0131, modelleme y\u00f6ntemleri ve iyi programlama pratikleri anlat\u0131lacak. Bunlar\u0131n bir k\u0131sm\u0131n\u0131n, benim bildi\u011fim bir ka\u00e7 d\u00fczine \u00f6nemli kitaplarda dahi yer almad\u0131\u011f\u0131n\u0131 belirtmek isterim. Uzmanlar i\u00e7in bile faydal\u0131 olabilecek bir iki numaram oldu\u011funu d\u00fc\u015f\u00fcn\u00fcyorum :) Peki nas\u0131l olacak? Her \u015feyden \u00f6nce sab\u0131rla, sebatla, ilim irfan a\u015fk\u0131yla, azimle olacak. Her zaman yapt\u0131\u011f\u0131m\u0131z gibi, bitirememek \u00fczere ba\u015flad\u0131\u011f\u0131m\u0131z 1632. i\u015f olmayacak bu. \u00d6nce e\u011fer C bilmiyorsan\u0131z, bir kaynaktan C \u00f6\u011freneceksiniz. \u00d6nerdi\u011fim kaynak\u00a0Deitel&amp;Deitel'in kitab\u0131. Ard\u0131ndan bu yaz\u0131 dizisini okudu\u011funuzda hakikaten keyif alacaks\u0131n\u0131z. Ger\u00e7i bir dili\u00a0bilmek iddias\u0131 fazla \u00f6zg\u00fcvenlice bir iddia bence, her zaman birbirimizden \u00f6\u011frenecek \u015feylerimiz var o ayr\u0131 mevzu ama C dilini zaten biliyorsan\u0131z do\u011frudan yaz\u0131lara devam edebilirsiniz. B\u00f6ylelikle g\u00f6m\u00fcl\u00fc sistemler i\u00e7in \u00e7ok net, ta\u015f gibi bir yaz\u0131l\u0131m alt yap\u0131s\u0131 edinmi\u015f olacaks\u0131n\u0131z. Zaten varsa da onu cilalam\u0131\u015f olacaks\u0131n\u0131z. Yaz\u0131da C ile birlikte C++ konseptlerine de de\u011finece\u011fim.\n\nSonra ne olacak? Yaz\u0131 dizisi nas\u0131l devam edecek? Donan\u0131m bilgisi olu\u015ftu, yaz\u0131l\u0131m bilgisi k\u00fclt\u00fcr\u00fc olu\u015ftu, s\u0131rada ne olacak. S\u0131rada art\u0131k ellerin kirlenmesi var. Microchip firmas\u0131n\u0131n 8 bitlik PIC mikrodenetleyicilerini programlama'y\u0131 ince detaylarla anlataca\u011f\u0131m. Bu sayede k\u00fc\u00e7\u00fck bir sistemde \u00e7al\u0131\u015fman\u0131n faydalar\u0131n\u0131, \u00a0temelleri ve detaylar\u0131 tertemiz g\u00f6rmeyi \u00f6\u011frenece\u011fiz. Ayn\u0131 zamanda basit s\u00fcr\u00fcc\u00fcler yazaca\u011f\u0131z, sens\u00f6rleri ve komponentleri tan\u0131yaca\u011f\u0131z. Ard\u0131ndan Atmel firmas\u0131n\u0131n Atmega serisi ile analoji kuraca\u011f\u0131m, onu her \u015feyiyle kullanmay\u0131 da anlataca\u011f\u0131m. Burada araya Arduino'nun i\u00e7 yap\u0131s\u0131n\u0131, anlat\u0131lmayanlar\u0131n\u0131 s\u0131k\u0131\u015ft\u0131raca\u011f\u0131m, malum \u00e7o\u011funun i\u00e7inde Atmega var. Sonra 16 bitlik bir mikrodenetleyici serisine ge\u00e7ece\u011fiz. Ayn\u0131 zamanda bu ultra-low power bir seri olacak; Texas Instruments MSP430 serisi. Buradan hem 16-bit'lik bir mikrodenetleyici nas\u0131l kullan\u0131l\u0131r, fark\u0131 nedir, low-power sistem tasarlaman\u0131n p\u00fcf noktalar\u0131 nedir onlar\u0131 da anlataca\u011f\u0131m. Sonra gelece\u011fiz ARM Cortex M3-M4 serisi i\u015flemci bar\u0131nd\u0131ran 32-bit'lik mikrodenetleyicilere. Burada da STM32 ve LPC17 serisinden \u00f6rnekler verece\u011fim. Hemen hemen ayn\u0131 \u015feyler, ama ayn\u0131l\u0131klar\u0131 farkl\u0131l\u0131klar\u0131 bilmek bence \u00f6nemli bir bilgi seti olacak. Ayn\u0131 zamanda DMA gibi, EMC gibi yepyeni mod\u00fclleri tan\u0131yaca\u011f\u0131z. Bu sayede mikrokontol\u00f6rlerin t\u00fcm \u00e7evresellerine h\u00fck\u00fcmdar olaca\u011f\u0131z. TFT ekran, thermal printer, manyetik kart okuyucu, rf modem gibi cihazlar ile\u00a0\u00e7al\u0131\u015faca\u011f\u0131z, sens\u00f6rler kullanaca\u011f\u0131z. Seviye atlam\u0131\u015f olaca\u011f\u0131z. Burada RTOS kullanman\u0131n inceliklerine de de\u011finece\u011fim. \u00c7ok \u00e7ok \u00f6nemli bir bilgi seti RTOS. Ya sonra? Bitmedi mi bu mikrokontrol\u00f6rler filan? Hay\u0131r efendim bitmedi. \u00c7ok \u00e7ekirdekli sistemler nas\u0131l programlan\u0131r onu anlataca\u011f\u0131m. 64-bit'lik platformlara de\u011finece\u011fim. Malum son IPhone'larda 64 bitlik i\u015flemciler var, neticede o da g\u00f6m\u00fcl\u00fc sistem. Ya sonra? Sonra 32-bit'e d\u00f6nece\u011fiz ama mikrobilgisayar seviyesindeki \u00e7ekirdekleri inceleyece\u011fiz. Burada g\u00f6m\u00fcl\u00fc linux ile platform baz\u0131nda kapan\u0131\u015f\u0131 yapaca\u011f\u0131m. Kafama eserse VxWorks de yazabilirim ama elzem de\u011fil. En sonunda a\u00e7\u0131k kaynakl\u0131 yaz\u0131l\u0131mlarla \u00e7al\u0131\u015fma, a\u00e7\u0131k kaynak lisans tiplerine de\u011finece\u011fiz.\n\nBurada yaz\u0131 dizisi sonlanacak san\u0131yorsan\u0131z yan\u0131l\u0131rs\u0131n\u0131z. Neticesinde<strong> sadece g\u00f6m\u00fcl\u00fc sistem temeli<\/strong> tahsis edilmi\u015f olacak. Ama \u00f6yle bir temel ki, \u00fcst\u00fcne art\u0131k ne kurarsan kur. Sonra her telden \u00e7alaca\u011f\u0131z, ba\u015f\u0131na g\u00f6m\u00fcl\u00fc etiketi koyaca\u011f\u0131z. Ne demek istiyorum? G\u00f6m\u00fcl\u00fc g\u00f6r\u00fcnt\u00fc i\u015fleme yapaca\u011f\u0131z. G\u00f6m\u00fcl\u00fc kontrol sistemi tasarlayaca\u011f\u0131z. G\u00f6m\u00fcl\u00fc haberle\u015fme tekniklerini a\u011flataca\u011f\u0131z, havadan karadan giden gelen veriye h\u00fckmedece\u011fiz. G\u00f6m\u00fcl\u00fc sistemlerde pastan\u0131n \u00fcst\u00fcne \u00e7ilekler koyaca\u011f\u0131z, kriptopgrafi yapaca\u011f\u0131z. Sonra FPGA konu\u015furuz. Sonra PSOC konu\u015furuz. Ve daha nicesi :)\n\nBu yol uzun olacak, zaman alacak, fedakarl\u0131k isteyecek ama yol bu olacak. Her t\u00fcrl\u00fc \u00f6neriye a\u00e7\u0131k oldu\u011fumu da belirtmek isterim. \u00dclkemizin, teknoloji \u00fcretiminde ileriye gitmesine, yani sizlere, hayat\u0131m\u0131za\u00a0bir nebze\u00a0katk\u0131da bulunabilirsem ne mutlu bana.\n\n\u015eimdi devam.\n\n[su_button url=\"http:\/\/ozenozkaya.com\/blog\/\" style=\"3d\"\u00a0icon=\"icon: arrow-circle-o-left\"]\u00d6nceki Sayfa[\/su_button] \u00a0[su_button url=\"http:\/\/ozenozkaya.com\/blog\/?p=172\" style=\"3d\" icon=\"icon: arrow-circle-right\"]Sonraki Sayfa[\/su_button]\n\n&nbsp;","_tr_post_name":"gomulu-sistemler-12-gomulu-programlamaya-giris","_tr_post_excerpt":"","_tr_post_title":"G\u00f6m\u00fcl\u00fc C - 1 : G\u00f6m\u00fcl\u00fc Programlama Yol Haritas\u0131","_en_post_content":"","_en_post_name":"","_en_post_excerpt":"","_en_post_title":"","edit_language":"tr","jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"enabled":false},"version":2}},"categories":[2,3],"tags":[],"class_list":["post-154","post","type-post","status-publish","format-standard","hentry","category-elektronik","category-gomulu-sistemler"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5gWM6-2u","jetpack-related-posts":[],"_links":{"self":[{"href":"http:\/\/ozenozkaya.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/154","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/ozenozkaya.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/ozenozkaya.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/ozenozkaya.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/ozenozkaya.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=154"}],"version-history":[{"count":0,"href":"http:\/\/ozenozkaya.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/154\/revisions"}],"wp:attachment":[{"href":"http:\/\/ozenozkaya.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=154"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/ozenozkaya.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=154"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/ozenozkaya.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=154"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}