原创 一個極簡單的RTOS代碼 STM32 借鑑UCOSII 彙編部分有詳細註釋

;/*********************** (C) COPYRIGHT 2010 Libraworks ************************* ;* File Name : os_cpu_a.asm ;* Auth

原创 X86 彙編基礎

寄存器間接尋址: 基址寄存器BX BP 變址寄存器SI DI 四選一 隱含規則: 指令中使用BP寄存器,隱含對應使用SS段寄存器 其餘情況隱含使用DS段寄存器   基址尋址/變址尋址: BX/BP/SI/DI 四選一 + 地址偏移 隱含規

原创 鏈接 集合

鏈接器的核心是兩個: 符號表 重定位表 工具: nm file.o objdump -h a.out   ld --verbose > defaults.lds 查看默認的鏈接腳本 gcc -fno-builtin    -fno-bui

原创 深入理解計算機系統

我對於計算機系統中最核心的是 ----數據的流動和放置 細說就是: 數據代表信息,所有的信息是由數據表示的 計算機只知道數據,處理的只是數據,不是信息,只有人才會認爲數據是信息,機器不會 數據一開始在什麼位置,然後流向那個位置,這是計算機

原创 ucore 清華 操作系統 x86-32知識

線性地址空間是虛擬內存下的應用程序鎖能訪問的空間 邏輯地址空間是應用程序直接使用的地址空間 以上兩個是靠段機制 和頁機制處理的 80386 寄存器分爲8組 用戶開發用     --     通用寄存器 段寄存器 指令指針寄存器 標誌寄存器

原创 C++ 學習小結

//c++中動態內存分配用new,C中用malloc //內聯函數-- //函數重載 名字相同,參數個數或者參數類型不同,定義函數時最右邊參數可以缺省 //缺省參數提高程序的可擴充性 //結構化程序設計沒有封裝和隱藏(接口) //面向對象

原创 關於 rtos 中斷 任務 打斷 優先級 的問答

低優先級任務執行出現高優先級任務,低優先級任務還會把時間片執行完嗎?答:會,在時間片用完後纔會進行任務切換. 低優先級中斷被高優先級中斷打斷,是怎樣的過程?答:cortex-M3內核種咬尾中斷,和晚到的中斷 ,看權威指南里面有! 高優

原创 ucos2,OSTaskStkInit 關於ucos2的移植函數的一些不解 - OSTaskStkInit

http://forum.eepw.com.cn/thread/91181/1

原创 一個極簡單的RTOS代碼 STM32 借鑑UCOSII ----彙編代碼的註釋有錯誤,僅僅是註釋

;/*********************** (C) COPYRIGHT 2010 Libraworks ************************* ;* File Name : os_cpu_a.asm ;* Auth

原创 uCOS-II Cortext-M3(STM32) 任務切換 極簡說明

  比如現在有兩個任務task1 和task2 現在將運行着的task1 切換到 task2 有圖M3有PSP和MSP,任務是在PSP保存堆棧指針的,由一個任務切換到另一個任務,就是說 要把PSP裏面的指針由 task1的堆棧指針換成 t

原创 函數指針數組

#include <stdio.h> void add(int x, int y){printf("x+y = %d\n",x+y);} void dec(int x, int y){printf("x+y = %d\n",x-y);

原创 回調函數的作用

當函數不在同一文件時,如動態鏈接庫,如果要想調用其他程序中的函數,就只能採用回調函數的形式了, 把函數指針經過外部函數地址的傳入,來實現調用。

原创 結構體 裏面的 函數指針

結構體裏面的函數指針,結構體成員初始化的時候,函數指針成員被指向函數,從而可以調用函數。 #include <stdio.h> #include <stdlib.h> #include <string.h> typedef void