原创 HTTP協議簡要分析

HTTP協議 一、HTTP協議簡介 HTTP協議是Hyper Text Transfer Protocol(超文本傳輸協議) HTTP是一個基於TCP/IP通信協議來傳遞數據的應用層傳輸協議 二、主要特點 1、簡單快速:客

原创 U-Boot中ARM協處理器CP15的操作分析

在U-boot的啓動文件start.S 文件中遇到了操作協處理器cp15的幾個指令用來關閉cache和MMU,具體怎麼做的還要看一下這個協處理的各個寄存器的功能。 具體可以查看《ARM ®  Cortex ® -A9 Technical

原创 Kinetis KL8x 使用eDMA模塊接收串口數據

飛思卡爾的芯片KL系列Cortex-M0+內核的,其他的應該可以通用,大體一致,之前在KL25上用過,這次是KL81,我對比兩者使用類似,就是某些寄存器不同罷了 正文開始: 需要用LPUART接收上層接口的數據,比較大,而且大小不固定,之

原创 MDK(Keil)中文亂碼

在使用高版本的Keil時往往復制粘貼中文註釋的時候會出現亂碼,這是因爲中文的編碼格式不對導致的,但是Keil這裏的編碼卻又很奇特,編輯器是以ANSI編碼方式來識別字符的,所需要修改編輯器的編碼方式,註釋是修改成GB2312編碼方式纔可以正

原创 select學習及循環服務器實現

select函數 int select(int maxfdp1, fd_set *readfds, fd_set *writefds, fd_set *execptfds, struct timeval *timeout);

原创 標準IO下對文件權限的修改

修改文件權限 1.int chmod(const char * path, mode_t mode); 函數說明:chmod()會依參數mode 權限來更改參數path 指定文件的權限。 參數 mode 有下列數種組合: 1、S_IFMT

原创 socket編程及Unix域內套接字實現進程間通信

在項目中常常需要進程間通訊,但是往往本地socket複雜些,但是更靈活些,畢竟功能強大些1.socketint socket(int doamin,int type,int pro);功能:通過該函數可以創建一個socket套接字文件,並

原创 ANSI X9.19 MAC算法的C語言實現

ANSI X9.19 MAC算法的基本思路: 1.ANSI X9.19MAC算法只使用雙倍長密鑰(不小於16)。 2.MAC數據先按8字節分組,表示爲D0~Dn,如果Dn不足8字節時,尾部以字節00補齊。 3.用MAC密鑰左半部加

原创 USB描述符解析和USB_CCID描述符設置

USB描述符解析 USB描述符信息會被存儲在USB設備中,在設備枚舉過程中,USB主機會向USB設備發送GetDescriptor請求,USB設備在收到這個請求之後,會將USB描述符信息返回給USB主機,USB主機分析返回來的數據,判斷

原创 Linux下exec函數族(execl,execv,execle,execve,execlp,execvp,fexecve)的使用和對比

Linux下exec函數族(execl,execv,execle,execve,execlp,execvp,fexecve)的使用和對比 exec函數是提供fork創建新的線程後,執行外部程序的一個接口,當進程調用一種exec函數時,該進

原创 USB狀態錯誤及其原因

The most significant 4 bits of USB status values are defined in the following table. Value Meaning 00 (USBD_STATUS_SU

原创 銀行常用加密算法PINBlock加密

1.首先知道PIN的數據格式和如何獲取PINPIN的格式應符合ANSI X9.8 Format(帶主賬號信息)PIN的長度爲4-12位格式:LV位置長度內容11字節PIN長度27字節4-12位PIN(每個字符佔4個BIT,不足右補F)若只

原创 Linux下C編程對目錄的增刪改查操作

目錄操作: 頭文件: #include <sys/types.h>   #include <dirent.h> 1.創建目錄 int mkdir(const char *path, mode_t mode); 功能:根據路徑創建目錄 參數

原创 ARM內核寄存器的操作函數

在修改嵌入式底層的參數時需要使用一些內核寄存器的操作,在編譯器中往往都封裝了對應的函數。 1.__ASM uint32_t __get_PSP(void):獲取進程堆棧指針PSP。 2.__ASM void __set_PSP(uint

原创 /sys/class/gpio下用文件IO快捷操作GPIO

在嵌入式設備中對GPIO的操作是最基本的操作。在Linux下面有一個通用的GPIO操作接口,利用映射 “/sys/class/gpio” 的方式,快捷操作,特別是在管理某個設備的電源開關時,很方便,這種方法也被用在Android安卓嵌入式