原创 8051 code bank 原理介紹

8051 code bank 原理介紹 一個標準的8051器件能尋址64KB的代碼地址空間。對於超過64KB的代碼,單片機系統通常採用代碼分頁(CODE BANKING)的方式來擴展程序空間。 如何擴展: 下面介紹一下一種結合硬件

原创 IC設計基礎

IC設計基礎 1、穩壓電源:LDO 和 DC-DC 可以把穩壓電源想象成爲如下的一種情形:當試圖從一個直徑較大的自來水管中取出連續不斷的且較小的水流時,可以採用兩種策略: 一種是使用一個轉接閥門,並將閥門開啓在較小位置,這就是線性

原创 USB2.0 HUB

一、USB2.0 HUB的架構 USB2.0 HUB 需要支持的功能: 1、連接行爲 2、電源管理 3、設備的連接/移除檢測 4、總線錯誤檢測和恢復 5、HS/FS/LS 設備的支持 從結構上看,hub 主要由三個部分組成,分別是

原创 Gdbinit 無法調用的問題

1、.gdbinit 文件是什麼: gdb在啓動的時候,會在你的當前工作目錄下查找 ".gdbinit" 這個文件,並把它的內容作爲gdb命令進行解釋,所以如果我把腳本命名爲".gdbinit",這樣在啓動的時候就會處理一些你常

原创 ARM:FreeRTOS系統棧和任務棧

ARM:FreeRTOS系統棧和任務棧 背景:ARM 有兩個棧指針PSP和MSP, 通過Control 寄存器來決定SP(R13)使用哪個棧。我們下面談論的系統棧和任務棧,就和這兩個棧指針有關。 FreeRTOS 任務棧 Fre

原创 IC 常見封裝介紹

一、兩邊出pin的封裝 DIP:雙列直插封裝(dual in-line package) 如圖: SOP:(Small Out-Line Package小外形封裝)是一種很常見的元器件形式。 如圖: SSOP:(Shrink

原创 MinGW 下如何使 .bashrc 生效

MinGW 下如何使 .bashrc 生效 最近,在win10 下安裝了MinGW, 想通過 .bashrc 來 激活環境變量,發現MinGW根本不會執行.bashrc 文件。 熟悉Linux的都知道,在進入SHELL時,一共有四

原创 GCC的連接腳本--LD 學習筆記

GCC的連接腳本學習筆記 連接腳本將我整整蒙了1天零一個上午,做了很多實驗,看了人家不少例子代碼 勉強能駕馭了,讓linker按照我想要的來處理,做個筆記。 1,什麼叫輸入段,什麼叫輸出段 不知道怎麼回事,我對GCC系列的輸入和輸

原创 EMMC Packed Command

Packed Commands - Packed Write and Packed Read 在實際應用場景中,通常會對 eMMC Device 有很多隨機數據讀取和寫入操作,這些隨機讀寫的目標地址往往都不是連續的,每一個隨機讀寫

原创 Billboard介紹

BillBoard起源: USB-IF協會在2014年公佈了Power Delivery v2.0的規格,同時也在原本的USB Class定義了新的分類Billboard Device Class v1.0。 什麼是Billboa

原创 USB發展歷程

USB 簡介 USB最初是由英特爾與微軟倡導發起,最大的特點是儘可能得實現熱插拔和即插即用。當設備插入時,主機枚舉到此設備並加載所需的驅動程序,因此其在使用上遠比PCI和ISA等總線方便。 USB在速度上遠比並行端口(例如EPP、

原创 編譯器與解釋器的區別

編譯器與解釋器的區別 編譯器就是一個程序,它可以閱讀以某一種語言(源語言)編寫的程序,並將該程序翻譯成一個等價的、用另一種語言(目標語言)編寫成的程序。 如果目標程序是一個可執行的機器語言程序,那麼它就可以被用戶調用,處理輸入併產

原创 C語言之類型定義(typedef)

typedef講解 typedef關鍵字的作用是可以用於給數據類型定義一個別名 舉個例子,比如說你的名字叫 列夫·尼古拉耶維奇·托爾斯泰 ,我嫌棄這個名字太長了,所以給你取一個別名,叫 托爾斯泰 ,以後我叫 托爾斯泰 的時候你就

原创 Cortex-M3 .s 啓動文件分析

Cortex-M3 .s啓動文件分析 arm 中常見的彙編指令和僞指令 下面是startup_.s文件的源代碼, 該文件主要完成三項工作:堆棧以及堆的初始化、定位中斷向量表、調用Reset Handler a) 堆棧以及堆的初始

原创 gcc之 objdump用法

objdump 常見用法如下: 如果想要解析 app.elf的文件信息,可以用如下格式 objdump -a app.elf //列舉.a文件中所有的目標文件。 objdump -g app.elf //顯示調試信息。