1. 程式人生 > >從skyeye學習arm( linux篇)

從skyeye學習arm( linux篇)

【 宣告:版權所有,歡迎轉載,請勿用於商業用途。  聯絡信箱:feixiaoxing @163.com】

   前面一章,我們說到了u-boot的模擬。作為現代的嵌入式系統來說,u-boot的主要作用其實就是兩個,一個是對硬體做一些基本的檢測,另外就是載入作業系統。在實際開發工程中,u-boot其實修改的工作很少,但是核心系統的相關修改工作確實非常頻繁的。如果沒有u-boot的幫助,我們很可能需要每次用特定的flash燒寫工具進行處理,這是非常麻煩的。在u-boot下,我們完全可以用tftp進行相關的操作工作。

     本篇文章,我們說到的其實是linux的模擬。只要對linux的程式碼稍微做一些修改,完全可以在skyeye上執行起來,主要的步驟如下,

    (01)獲取linux核心版本,目前我們測試的版本是linux-2.6.14.tar.bz2;

    (02)解壓, tar xjvf linux-2.6.14.tar.bz2;

    (03)cd linux-2.6.14;

    (04)修改Makefile, 在192、193行修改為如下所示,

ARCH            ?= arm
CROSS_COMPILE   ?= arm-linux-

    (05)輸入make smdk2410_defconfig;

    (06)輸入make menuconfig,注意下面的兩個配置

    "File systems" -> 選中 "Second extended fs support" , " Rom file system support ",

    "Device Drivers" -> "Block devices" -> 選中 "Initial RAM disk(initrd) support", "Default RAM disk size (kbytes)"修改為 8192

    (07)修改檔案

    include/asm-arm/arch-s3c2410/memory.h  中 33行修改為  #define PHYS_OFFSET     (0xC0000000UL)

    include/asm-arm/arch-s3c2410/map.h  中175行修改為  #define S3C2410_CS6 (0xC0000000)

    (08)修改.config檔案

    生成除錯資訊,開啟開關,即CONFIG_DEBUG_INFO=y
    修改CONFIG_CMDLINE, CONFIG_CMDLINE="mem=32M console=ttySAC0 root=/dev/ram initrd=0xc0800000,0x00800000 ramdisk_size=8192 rw"

    (09)完成了上面的修改,開始編譯

    輸入make

    (10) 準備skyeye.conf檔案

#skyeye config file sample

cpu:  arm920t
mach: s3c2410x

#physical memory
#mem_bank: map=M, type=RW, addr=0x20000000, size=0x01000000
mem_bank: map=M, type=RW, addr=0x00000000, size=0x00800000
mem_bank: map=M, type=RW, addr=0x30000000, size=0x10000000
mem_bank: map=M, type=RW, addr=0xc0000000, size=0x01000000
mem_bank: map=M, type=RW, addr=0xc1000000, size=0x00600000
mem_bank: map=M, type=RW, addr=0xc1600000, size=0x00a00000
#all peripherals I/O mapping area
#mem_bank: map=I, type=RW, addr=0xfefa0000, size=0x00060000
mem_bank: map=I, type=RW, addr=0x48000000, size=0x20000000
mem_bank: map=I, type=RW, addr=0x19000300, size=0x00000020
net: type=cs8900a, base=0x19000300, size=0x20,int=9, mac=0:4:3:2:1:f, ethmod=tuntap, hostip=10.0.0.1
lcd:type=s3c2410x,mod=gtk
#dbct:state=on

    (11)拷貝vmlinux和skyeye.conf到一個目錄下,輸入skyeye -e vmlinux
[email protected]:~/Desktop/exer/arm_linux$ skyeye -e vmlinux 
Your elf file is little endian.
arch: arm
cpu info: armv4, arm920t, 41009200, ff00fff0, 2 
mach info: name s3c2410x, mach_init addr 0x806dc30
ethmod num=1, mac addr=0:4:3:2:1:f, hostip=10.0.0.1
failed to setup_module (name:net, type:cs8900a)
tapif_init: icotl TUNSETIFF erroruart_mod:0, desc_in:, desc_out:, converter:
SKYEYE: use arm920t mmu ops
start addr is set to 0xc0008000 by exec file.
Linux version 2.6.14 ([email protected]) (gcc version 3.4.1) #1 Sun Jan 12 16:24:59 CST 2014
CPU: ARM920Tid(wb) [41009200] revision 0 (ARMvundefined/unknown)
Machine: SMDK2410
Warning: bad configuration page, trying to continue
Memory policy: ECC disabled, Data cache writeback
CPU S3C2410 (id 0x32410000)
S3C2410: core 62.400 MHz, memory 62.400 MHz, peripheral 62.400 MHz
S3C2410 Clocks, (c) 2004 Simtec Electronics
CLOCK: Slow mode (1.500 MHz), fast, MPLL on, UPLL on
CPU0: D VIVT write-back cache
CPU0: I cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets
CPU0: D cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets
Built 1 zonelists
Kernel command line: mem=32M console=ttySAC0 root=/dev/ram initrd=0xc0800000,0x00800000 ramdisk_size=8192 rw
PID hash table entries: 256 (order: 8, 4096 bytes)
timer tcon=00000000, tcnt cb1f, tcfg 00000200,00000000, usec 0000189e
Console: colour dummy device 80x30
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory: 32MB = 32MB total
Memory: 22320KB available (1469K code, 271K data, 92K init)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
checking if image is initramfs...

    很明顯,linux系統只是啟動了一部分, 它缺少一個檔案系統。我們可以在後面詳細介紹檔案系統是怎麼製作的。

相關推薦

skyeye學習arm linux

【 宣告:版權所有,歡迎轉載,請勿用於商業用途。  聯絡信箱:feixiaoxing @163.com】   前面一章,我們說到了u-boot的模擬。作為現代的嵌入式系統來說,u-boot的主要作用其實就是兩個,一個是對硬體做一些基本的檢測,另外就是載入作業系統。在實際開發工

skyeye學習arm 工具

【 宣告:版權所有,歡迎轉載,請勿用於商業用途。  聯絡信箱:feixiaoxing @163.com】    在前面的一篇文章中,我們介紹瞭如何利用skyeye啟動最簡單的arm程式程式碼。今天,我們可以從頭開始介紹如何搭建相關的環境。因為是skyeye的模擬,所以主要的工

Linux學習工具基礎

1.為什麼要學習Linux? 不是因為大神都在用,而是因為linux是工作中部署環境必備的基礎技能,比如在docker部署環境。 2.用啥學linux? 1.初始學習階段使用vmware workstation pro。vmware的破解碼網上很多,這裡就不

《深入分散式快取:原理到實踐》學習筆記最終

第十四章 典型電商應用與快取 及時響應性的使用者需求 資料準確行需求 平臺海量請求的訴求 高可用訴求 14.1 電商類一個你用的挑戰及特點 穩定性決定服務能力 高併發場景(Scale Out 加機器、Scale Up 提

第一本書開始,如何成為深度學習工程師

在這裡,小編理解的初階選手,是具備了一定的計算機基礎,但是對於深度學習理論和動手實操方面沒接觸過的筒子。通過系統學習後能夠快速入門,並升級中階。如下是建議初階少俠的修仙路徑,需要走好這四步,即:讀理論書→看視訊課→實操訓練→社群交流具體怎麼操作呢?彆著急,逐一來看~要看的第一

Linux學習日誌基礎----VIM末行模式補充、gcc相關

6、vim配置檔案 使用者級別: ~/.vimrc(隱藏的,直接建立即可) 系統級別

ftk學習combox

stat combox ont article 窗體 reat ctx 編譯 argv 【聲明:版權全部,歡迎轉載,請勿用於商業用途。 聯系信箱:feixiaoxing @163.com】 上一篇文章談到了多窗體,還是依照約定看一下效果是什麽樣的。 假設大

ftk學習

ogl 了解 creat 調試 ret text 們的 app x11 【 聲明:版權全部,歡迎轉載,請勿用於商業用途。 聯系信箱:feixiaoxing @163.com】 非常早之前就知道ftk了,當時主要是由於買了李先靜的書,所以知道了這麽一個項目。由

Angular學習筆記工具----Angular CLI

進入 詳情 基礎 rate 9.png cnpm 基本用法 版本問題 問題 Angular CLI 的作用 首先安裝npm 和node 詳情:http://www.cnblogs.com/gorgeous/p/8074180.html 在安裝 npm in

數據庫入門到精通安裝

軟件 大連 主配置文件 eve 為我 入門到精通 bold 數據模型 system 一、數據庫介紹 了解數據庫之前我們先來了解幾個概念,什麽是數據,什麽是數據庫,什麽是數據庫管理系統,什麽是數據庫系統? 數據(Data): 描述事物的符號記錄稱為數據,描述事物的符號既

Android移動端自動化測試入門到實戰Java

一.移動測試效果簡單展示 使用Python指令碼實現自動化移動測試功能,先看效果:   接下來就是環境的配置了   二.環境配置 2.1 搭建Node.js環境 1、到官網下載node.js   安裝node.js版本不宜過高,選擇穩定使用較多的即可,否則會報

Hadoop大資料開發學習路線圖詳細

Hadoop發展到今天家族產品已經非常豐富,能夠滿足不同場景的大資料處理需求。作為目前主流的大資料處理技術,市場上很多公司的大資料業務都是基於Hadoop開展,而且對很多場景已經具有非常成熟的解決方案。 作為開發人員掌握Hadoop及其生態內框架的開發技術,就是進入大資料領

HTML教程學習筆記第一

學習資料:www.w3cschool.cc   學習日期:2014-11-03 1.DOCTYPE宣告文件型別: HTML5:<!DOCTYPE html> HTML4.01:<!DOCTYPE HTML PUBLIC "-//W3C//DTD H

Jenkins 入門到精通安裝

安裝方法有很多,本人也嘗試了rpm安裝,可能操作什麼問題吧,安裝過程不是那麼一帆風順,各種問題。 然後面和碼雲對接也沒對接上,可能配置沒配置哈,所有乾脆就重新安裝下,下載了個最新的 war包,然後直接對到tomcat  的  webapps 目錄下,將報名改成ROOT.wa

Java工程師學習指南完結

本文首發於微信公眾號:程式設計師江湖 Java工程師學習指南 完結篇 先宣告一點,文章裡面不會詳細到每一步怎麼操作,只會提供大致的思路和方向,給大家以啟發,如果真的要一步一步指導操作的話,那至少需要一本書的厚度啦。 因為筆者還只是一名在校生,所以寫的內容主要還是針對J

小四軸入門到入土硬體

電源:3.7V鋰電池 主控晶片:stm32f103c8t6 通訊模組:NRF24L01,藍芽模組,WIFI模組 電機:720空心杯 電機驅動:SI2302型mos管 姿態檢測:MPU6050 鋰電池管理晶片:LTC4054 穩壓晶片:AMS1117_3.3 其他

學習TP5前提:基於PHP的專案開發環境搭建

前言 之前我寫一個TP5框架快速上手的文章,如果你想快速上手TP5框架的話,可以看一下。這篇來聊一聊用TP5框架或者說用PHP來寫後端專案需要在部署哪些環境,還要需要準備哪些軟體。(方法不唯一) 需

Opengl es2.0 學習筆記API所有API的翻譯

包含了 gl2.h 和egl.h兩個標頭檔案 gl2.h gl2資料結構 /*------------------------------------------------------------------------- * Data type defi

機器學習實戰第二-k-近鄰演算法開發手寫識別系統

   上一篇文章中,我們學習了使用k近鄰演算法改進約會網站,實現了通過一些資料的輸入判斷人員屬於哪一個分類。但是上篇文章基於的資料都是我們能夠簡單理解的數字資訊,本篇文章我們在人不太容易看懂的資料上使用分類器。這篇文章中我們將一步步構造使用k-近鄰分類器的手寫識別系統。為了

機器學習實戰第二-k-近鄰演算法改進約會網站配對結果

    前面幾篇中,我們學習了機器學習演算法中k-近鄰演算法,本章我們將使用該演算法進行改進約會網站配對結果的工作。首先我們先進入背景介紹:      我的朋友海倫一直使用線上約會網站尋找適合自己的約會物件。儘管約會網站會推薦不同的人選,但她沒有從中找到喜歡的人。經過一番總