2440外接有sdram,nor flash,nand flash(通過nand flash控制,cpu可以直接控制sram,sdram,nor flash,但不能直接控制nand),同時內部還有4k的sram(nor啟動時,起始位置為0x4000,0000;nand啟動時,起始位置為0)。
使用nand啟動時,不可訪問nor,因為nor的片選接到了ngcs0。另外,nor可以像記憶體一樣讀,但不可以像記憶體一樣寫,這是由nor的物理結構決定的
使用nand啟動時,前4k的**會由硬體複製到sram中,程式也會從位址0即sram中開始執行,這樣做可以保證程式正常啟動(steppingstone,墊腳石),但如果程式超過4k,則需要用這前4k的**將整個程式讀出放到sdram中(重定位),否則程式無法正常執行。
乙個程式,主要含有**段和資料段。
**段(code):text
資料段(rwdata):含初值的全域性變數和靜態變數
唯讀資料段(rodata):被const修飾的全域性變數
未初始化資料段(bss段,(block started by symbol)):未賦初值的全域性變數和靜態變數(不儲存在bin中,我們程式裡面將它清零即可)
除了這些,還有乙個comment段,裡面是一些注釋資訊,如下圖,474343為ascii的gcc。
webpack 概念的引入
在網頁中會引用哪些常見的靜態資源?js js jsx coffee ts typescript 類 c 語言 字型檔案 fonts svg ttf eot woff woff2 模板檔案 ejs jade vue 這是在webpack中定義元件的方式,推薦這麼用 網頁中引入的靜態資源多了以後有什麼問...
重定位的介紹
1 鏈結位址和執行位址 1 鏈結位址 2 執行位址在位置相關碼執行前,需要把 拷貝到以鏈結位址為起始位址的空間裡,然後通過跳轉語句,跳轉到以鏈結位址為起始位址的 的相應的位置繼續執行。3 舉例 2 重定位 1 在執行位址處執行一段位置無關碼,把整個程式映象拷貝乙份到鏈結位址處,然後使用長跳轉指令從執...
關於C 中的重定位
標準庫定義了4個io物件,處理輸入時使用命名為cin的istream型別物件,這個物件也成為標準輸入。處理輸出時使用命名為cout的ostream型別物件,這個物件也稱為標準輸出。標準庫還定義了另外兩個ostream物件,分別命名為cerr和clog。cerr物件又叫標準錯誤,通常用來輸出警告和錯誤...