原创 STM32F407中的RT-thread系統中移植LCD的程序-FSMC控制

環境 開發板:正點原子探索者 芯片:STM32F407ZGT6 系統:RT-Thread 屏幕型號:TFTLCD 55510 4.3寸 開發軟件:Keil,CubeMX, Env 目的 現在將裸板上的LCD程序,移植到RT-t

原创 鏈接文件簡要說明

鏈接文件格式.lds 在最終生成可執行文件的時候,會確定各個段的位置 SECTIONS { .text 0 : {*(.text)}//所有文件的.text段都放在地址0開始的位置 .rodata

原创 SystemInit解析和SetSysClock()

void SystemInit(void) { /* FPU settings 浮點運算單元設置,此處一般不執行---------------------------*/ #if (__FPU_PRESENT == 1)

原创 link.sct解析

keill默認對通過鏈接文件link.sct(分散加載文件)放到指定的位置。 分爲加載區和執行區 加載區:程序復位和加載的代碼和數據 執行區:程序執行過程中,從每個加載區可創建一個或多個執行區 ; ****************

原创 startup_stm32f407xx.s

使用單片機STM32執行的第一個程序是startup_stm32f407xx.s 指令名稱 含義 EQU 給數字常量取一個符號名,相當於C語言中的define AREA 彙編一個新的代碼段或者數據段 SPAC

原创 startup_stm32f407xx.c

startup_stm32f407xx.c 會調用該函數的SystemInit /** @addtogroup STM32F1xx_System_Private_Functions * @{ */ /** * @br

原创 diff和patch 命令使用

diff、 patch 命令 diff 命令常用來比較文件、目錄,也可以用來製作補丁文件──所謂“補丁文件”就是 “修改後的文件”與“原始文件”的差別。 常用的選項有: ① “-u”:表示在比較結果中輸出上下文中一些相同的行,這有

原创 va_start和va_end

對於可變參數的函數可以,使用下面的宏來,獲取輸入的每一個參數 這些宏定義在stdarg.h中 typedef char *va_list; va_start宏,獲取可變參數列表的第一個參數的地址(list是類型爲va_li

原创 uabntu上linux系統調用號查詢

當進行系統調用的時候,linux中會觸發0x80的中斷,進入該中斷例程函數後,然後在根據系統調用號來決定進入哪個系統調用 例如,在C函數裏實現內嵌彙編,觸發系統調用的中斷0x80,在根據系統調用號調用open函數 static i

原创 fopen和open函數

打開文件的函數有fopen和open,這裏的區別在於,fopen是c庫中的函數,fopen是系統的函數,fopen位於stdio.h中,open需要添加多個頭文件 fopen的使用 #include<stdio.h> int ma

原创 進程應用之fork 和 execve

如果要了解進程和線程的區別請參考:進程和線程的描述 1.fork()函數介紹 #include<sys/types.h> #include<unistd.h> pid_t fork(void); 這個函數雖然執行一次,但是會返回

原创 --n 和 n--

- -n和n- -代表的意思都是n減一,但是也不小的區別,在循環中使用會有相差一次的現象 - - n的例子 #include<stdio.h> int main() { int n = 3;

原创 計算機數據存儲方式-源碼和補碼

計算機的數據都是以補碼的形式來存在的,計算機只能進行加法不能經行減法運行,通過補碼來變相實現減法 正數的補碼是本身 負數的補碼是,最高位(符號位)不變,原碼取反,再加一 char a = 2; 的存在方式是 (原碼)00000

原创 socket使用和編程,實現windows到linux上的通信

目的:實現PC到虛擬機上的linux進行通信 虛擬機的IP地址爲192.168.206.144 (注意按照自己的虛擬機修改IP地址) 在ubanru上建立server端,代碼如下 #include<stdio.h> #includ

原创 字符串轉爲16進制數

/***************************************************************************** 函 數 名 : HexStrToByte 功能描述 : 將字符串