原创 winrar去除廣告

1 install winrar 2 copy rarreg.key to INSTALL DIRECTORY, along with rar.exe 3 open rar.exe text of rarreg.key RAR r

原创 zedboard第二十四課(standaloneOS , BSP DEVICE DRIVER ,API模塊架構)

我們已經學習了關於如何使用SDK提供的DRIVER的API,控制zynq上的外設,本文思考API的模塊架構,以及編程思想。 首先來看SOD設計思想的幾個重要原則。 1)結構體對象抽象,數據整合,封裝。 對於我們所要描述的硬件資源,

原创 kernel hacking

linux標準的打印函數是printk。 #define KERN_EMERG "<0>" #define KERN_ALERT "<1>" #define KERN_CRIT "<2>" #define KERN_ERR "<3

原创 freertos(第一課,導言)

vivadoSDK中,已經移植好了freertos。直接使用即可。 freertos的部署,多見於MCU,它介於裸機前後臺架構和複雜的linuxOS之間。 freertos上部署協議棧是比較容易的事,例如LWIP,WIFI,BLU

原创 SOD設計思想

struct oriented design, 是介於procedure oriented design 和 object oriented design之間的一種設計思想。 在POD的基礎上,借用了OOD的很多理念。 與OOD不

原创 linux驅動(第二十六課 基於DTS的系統移植)

對於系統移植者而言,主要是兩種驅動方面的工作 1)SOC已經提供的驅動,在DTS中進行對應修改,提供給內核板子相關的資源。 2)自己實現的驅動,在DTS中進行添加,提供相關的資源。並在drivers下添加對應的目錄或者文件。 本文

原创 freertos(第三課,interrupt for critical segment)

freertos中,並不提供掛接IRQHandler的API。 所以,如果需要註冊ISR,仍然需要使用standaloneOS提供的API。例如GIC的API。 freertos提供的中斷管理,只是用來屏蔽和打開中斷,用來進行臨界

原创 freertos(第十二課,multi-task,LWIP)

freertos能夠多任務處理,這對於LWIP而言,是最好不過的了。這樣,LWIP可以創建多線程,來並行處理髮送和接收。 SDK已經移植好了基於freertos的lwip。 先來看看lwip的選項。 1)api_mode。設置爲s

原创 linux驅動(第二十七課,綜合實例,platform, cdev,spi, gpio)

來看一個具體的實例OLED驅動 首先我們確定設備的主類型,這裏爲CDEV, 然後,我們確定設備的其他類型,這裏爲PDEV, 然後,我們確定設備所需要的伺服設備的類型,這裏爲SPIDEV. 然後,我們設置設備所需要的資源。 我們需要

原创 freertos(第八課, event group)

semaphore只能用於單個事件的進程同步,如果需要進行多事件同步,就需要使用eventgroup。 一個eventgroup就是一組eventbit。 我們可以自行約定eventbit所代表的含義。 事件組的類型是EventG

原创 freertos(第六課,TASK, Scheduler,taskdelay)

freertos用task來表示一個進程。 task擁有自己的stack,這是進程最明顯的標誌。 task被表示爲4種狀態。run, ready, suspend, block。 run態是當前佔據CPU的task的狀態。 rea

原创 freertos(第七課,semaphore, mutex, msg queue)

freertos是一個多進程操作系統。 多進程的一個重要控制,就是進程同步。 大多數的OS,都會基於PV操作完成進程同步。 基於EVENT的進程同步, event在OS中,被表示爲一個結構體對象,最簡單的情況下,只有一個數據成員。

原创 freertos(第九課,task notifications)

任務通知是一個可選的功能,需要配置宏 #define configUSE_TASK_NOTIFICATIONS 1 freertos中的每個TCB,都有一個32位的通知量。 ulNotifiedValue。 任務通知量也是一個信

原创 freertos(第四課, mem, alloc)

freertos提供了內存分配的API pvPortMalloc(),替代C中的malloc(), vPortFree(),替代C中的free(), xPortGetFreeHeadSize(),獲取當前未分配的堆的大小 free

原创 freertos(第二課,coding style,list )

freertos對數據類型進行了統一定義。 標準C的類型,被命名爲標準的freertos類型。 例如: #define portCHAR char #define portSHORT short #define portLONG