STM32 Bootloader

Categories: Uncategorized

STMicroelectronics has a simple bootloader tutorial in the link. This article summarizes the tutorial with additional pieces of advice. I’m using Nucleo-F429ZI dev board but other boards are similar for the bootloader. According to the design, there are two STM32 projects, one for the bootloader and one for the application that will be jumped from … Read More

STM32 FreeRTOS Config Without CMSIS

Categories: c, freertos, stm32

Many guides explain how to use FreeRTOS in STM32 projects without using the CMSIS wrapper library, but I still want to write one more. At first Adding FreeRTOS lib to the project Project explorer will look like in STM32Cube Configuring STM32Cube Settings

Exploring a Winner From Obfuscated C Code Contest

Categories: c

While enjoying the entries from The International Obfuscated C Code Contest, I’ve decided to examine one of them, Dave Burton’s the best one-liner from the 27th IOCCC Winner. The program bin.c The program takes a decimal value from 0 to 255 (for little endian systems) or 0 to 511 (for big endian systems) and prints … Read More

Crossover ve Straight(Patch) Kablolar

Categories: network

Cihazları birbirine bağlamak için kabloları kullanıyoruz. Ancak haberleşme protokolümüze bağlı olarak cihazlar arasında yaptığımız bağlantı şekli de önem kazanıyor. Özellikle full duplex haberleşmenin mümkün olduğu sistemlerde giden ve gelen kanallar birbirinden ayrı olduğu için bağlantılarının doğru yapılası gerekiyor. Aşağıda örnek iki resim yer alıyor. Patch kablolarda kablonun her iki ucundaki pinler aynen birbirine bağlanırken, crossover … Read More

ROM, Flash ve EEPROM Emulation

Categories: Uncategorized

Başlık kendini net bir şekilde ifade ediyor. EEPROM ve Flash arasında ne fark var? Özellikle Flash’ların EEPROM emulation yazılımları ile kontrol edildiğini görmek, ister istemez insanı araştırmaya yöneltiyor. Fakat madem böyle bir işe girişiyoruz biraz daha kapsamlı olarak en eskiden başlayalım. Uçucu olmayan belleklerin kısa tarihi (Non-volative memories) EEPROM ya da uzun adıyla Electrically Erasable … Read More

C’de Storage Class Tipleri (Depolama Sınıfı)

Categories: c

C programlama dilinde değişkenlerin ömrünü ve görünürlüğünü düzenleyen dört adet storage class specifier (typedef’i saymazsak) vardır. Auto Öncelikle altını çizmek gerekir C++11’den itibaren auto keywordü C ve C++ için aynı anlama gelmiyor. Bu yazı C’ye odaklandığı için burdan devam edelim. Bunun yanında C’de auto keywordu aslında gereksizdir. Çünkü kullanılmasına izin verilen yerlerde zaten default olarak … Read More

SPI Haberleşmesi

Categories: spi

Serial Peripheral Interface veya kısa adıyla SPI, özellikle gömülü sistemlerde kullanılan senkron ve full-duplex bir seri haberleşme protokolüdür. Senkron, haberleşmede bir clock’un kullanıldığını ifade eder. Asenkron bağlantılarda bir clock yoktur. Full-duplex, half-duplex’in aksine haberleşmenin aynı anda her iki yönlü de olabileceğini ifade eder. Seri haberleşmede, bir byte veriyi oluşturan bitler bir kanal üzerinden art arda gönderilir. … Read More

Git’e Genel Bakış Part 5: Tagging ve Versiyon

Categories: git

Git, her commit sonrası repodaki belgeleri bir hash fonksiyonundan geçirerek (SHA-1) 20 byte bir değer üretir. Genellikle hex olarak 40 digit halinde gösterilir. Böylece her commit bir hash değeri ile ilişkilendirilebilir ve hash değeri kullanılarak hangi committen bahsedildiği anlaşılmış olur. Commit sonrası git log komutu ile geçmiş commitlerin yorumları, tarihleri ve hash değerleri gösterilebilir. Örnek … Read More

Git’e Genel Bakış Part 4: Local Değişikleri Remote Repo’ya Gönderme ve Merge

Categories: git

Önceki kısımlarda bir local ve remote repo oluşturmuştuk. Şimdi local repomuzda yapacağımız değişiklikleri remote repoya gönderelim. Ancek öncesinde aşağıdaki görsele göz atmak oldukça faydalı olur. Local Değişikleri Remote Repo’ya Gönderme localrepo/program.txt dosyasına print(“bug fix”) metnini ekleyelim. ve “bugfix” yorumu ile commitleyelim. Şu an localrepo’muzda değişiklik yaptık ancak origin’in bizden haberi yok. Yaptığımız değişiklikleri remote repo’ya … Read More

Git’e Genel Bakış Part 3: Remote Repo’dan Kodları Çekme

Categories: git

Yeni Bir Repo Gerçekten remote server kullanmak yerine şimdilik remote server’ı taklit etmek için bilgisayarımızda yeni bir repo oluşturabiliriz. Yazının önceki bölümünde myrepo isminde bir klasör oluşturmuştuk. Aynı düzeyde localrepo isminde bir klasör daha oluşturalım ve parent klasörde aşağıdaki komutu çalıştırarak repoyu kopyalayım. Klasör yapımız resimdeki gibi olmalı. Böylece aynı bilgisayarda olsak dahi remote ve … Read More