999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于國產龍芯2K1000龍芯派的內核系統啟動

2018-12-31 00:00:00徐意泊陳富浩丁振華楊筆鋒
現代信息科技 2018年12期

摘 要:隨著我國科技實力的不斷增強,一些國家開始對中國采取措施,對出口中國的芯片進行加稅加價,這使得中國眾多企業和公司面臨著嚴峻的挑戰。我們要想擺脫困境,我們就要擁有自己的芯片,制造屬于我們的中國“芯”。龍芯2K1000是我國今年剛剛研發的一款嵌入式芯片,龍芯2K1000處理器是面向網絡安全領域及移動智能終端領域的雙核處理器芯片。龍芯2K1000處理器集成兩個GS264處理器核,芯片外圍接口包括兩路PCIE2.0、一路SATA2.0、4路USB2.0、兩路DVO、64位DDR2/3及其它多種接口,可以滿足中低端網絡安全應用領域需求,并為其擴展應用提供相應接口。對于一款嵌入式芯片來說,要想使用它,首先要掌握它的啟動方法,其主要分為三個步驟:1、bootloader的制作;2、文件系統的制作;3、內核系統的安裝。論文主要研究基于龍芯2K1000龍芯派的內核啟動。

關鍵詞:Loongson;嵌入式;文件系統;內核啟動;bootloader

中圖分類號:TP368 文獻標志碼:A 文章編號:2096-4706(2018)12-0029-06

Kernel System Start Based on the Domestic Loongson 2K1000 Loongson Pie

XU Yibo1,CHEN Fuhao1,DING Zhenhua1,YANG Bifeng1,2

(1.Chengdu University of Information Technology,Chengdu 610225,China;

2.CMA.Key Laboratory of Atmospheric Sounding -KlAS,Chengdu 610225,China)

Abstract:With the continuous enhancement of science and technology in China,some countries have begun to take measures by increasing taxes and prices on chips exported to China,which makes many Chinese enterprises and companies face severe challenges. If we want to get out of this dilemma,we have to possess our own chips and make our own Chinese “core”. Loongson 2K1000 is an embedded chip just developed in China this year. Loongson 2K1000 processor is a dual-core processor chip for network security and mobile intelligent terminal. It integrates two GS264 processor cores,and the peripheral interfaces include two PCIE2.0,one SATA 2.0,four USB 2.0,two DV0s,64-bit DDR2/3 and many other interfaces,which can meet the needs of low-end network security applications and provide corresponding interfaces for its extended applications. For an embedded chip,the start-up way should be grasped before use it. The way of start-up is divided into three steps:first,the production of bootloader;second,the production of the file system;third,the installation of the kernel system. The article mainly introduces the core startup based on Loongson 2K1000 Loongson core pie.

Keywords:Loongson;embedded;file system;kernel startup;bootloader

0 引 言

中美貿易爭端警醒了中國人,讓我們大家真正看到了中國集成電路領域的短板。我國在集成電路領域一直處于非常低端的水平,長期依賴購買他國的電子芯片,是我們芯片研發制造落后的根本原因。中美貿易以來,國家對芯片研發的投入越來越多,我們的芯片制造也逐漸從低端開始走向中高端。龍芯2K1000就是今年剛剛發布的一款CPU,這款CPU是由中國科學院計算所自主研發的通用CPU。本文主要研究的是龍芯2K1000的文件系統制作及內核的啟動方法。

本文主要以bootloader內核引導、文件系統制作和內核系統安裝三大部分詳細介紹使用龍芯2K1000這款CPU的使用。

1 bootloader內核引導

bootloader內核引導即引導加載程序,是系統加電后運行的第一段軟件代碼,它的主要功能是引導啟動內核。在龍芯2K1000上我們使用的bootloader是pmon,也就是說pmon是CPU龍芯2K1000上電后執行的第一段軟件代碼,相當于X86PC機中的BIOS,其源代碼來源于BSD的內核代碼。pmon的二進制代碼存放于主板上的一塊512KB的flash芯片上,龍芯2K1000允許的最大Boot Rom容量是1MB。

對于512KB的flash,地址我們是確定的,虛擬地址0xbfc00000,物理地址0x1fc00000。CPU上電后,會在第一時刻從虛擬地址為0xbfc00000的讀取指令執行。

start.S核心是把pmon復制到內存。并初始化Cache,內存控制器,內存和南橋的部分信號。這個代碼執行之后會執行一行c代碼。解壓在二進制中壓縮的bin文件,跳到解壓后的代碼繼續執行。龍芯2K1000采用的是MIPS(Microprocessor without interlocked piped stages architecture)架構,之所以采用MIPS架構,是因為MIPS架構具有簡潔、優化、具有高度擴展性等屬性。MIPS架構的基本特點是:包含大量的寄存器、指令數和字符、可視的管道延時時隙。MIPS CPU約定CPU執行的第一條指令位于虛擬地址0xbfc00000,而pmon的二進制代碼是以 load -r -fbfc00000 gzrom.bin這個命令燒入bfc00000這個地址開始的flash,硬件布線會使得虛擬地址0xbfc00000映射到這塊flash上。而start.S就占據了gzrom.bin的開頭部分。gzrom.bin作為開頭部分是因為./zloader/Makefine.inc中的 L29:mips-elf-ld -T ld.script -e start -o gzrom ${START}zloader.o決定的。

2 文件系統制作

根文件系統是bootloader引導內核啟動時所mount的第一個文件系統,對于嵌入式軟件來說是至關重要的,內核代碼映像文件保存在根文件系統中,而系統引導啟動程序會在根文件系統掛載之后從中把一些基本初始化腳本和服務等加載到內存中去運行。在啟動yaffs,cramfs,jffs2文件系統的時候,首先需要確定我們的內核配置了該文件系統,并且配置不啟動ramfs文件系統,步驟如下:

make menuconfg ARCH=mips(執行該命令啟動圖形化配置界面,并用上下鍵選擇 General setup --->,如圖1圖形化配置界面1所示)。

在圖1的基礎上,按Enter鍵進入如圖2所示圖形化配置界面2。

確保圖1中淺色部分前面的[]中,沒有任何內容,按Esc鍵,并保存配置,重新編譯內核既可(make vmlinux ARCH=mips CROSS_COMPILE=mipsel-linux-);

把編譯好的vmlinux拷貝到tftp服務器的目錄中:

cp vmlinux /home/tftpboot/ (該命令在宿主機上執行)

2.1 yaffs文件系統的制作及啟動計

./mkfs.yaffs2 rootfs2 rootfs2.yaffs

備注:rootfs2為文件系統的名字rootfs2.yaffs為制作的yaffs文件格式的文件系統cp rootfs2.yaffs/home/tftpboot/(該命令在宿主機上執行)

修改權限:

chmod 777/home/tftpboot/rootfs2.yaffs

配置開發板的IP地址:ifconfig syn0 10.50.122.252向開發板上的nand燒寫文件系統的命令:

devcp tftp://10.10.122.24/rootfs2.yaffs/dev/mtd1y備注:燒寫到nand的分區1,若燒到分區0,改為mtd0y,做好燒寫到分區1

在你的主機上需要安裝tftp服務器,才可以通過網絡燒寫啟動內核(以下命令都在開發板上執行):

load tftp://10.50.122.23/vmlinux

g console=ttyS0,115200 rdinit=/sbin/init rootfstype=yaffs2 rw root=/dev/mtdblock1

2.2 cramfs文件系統的制作和啟動

mkfs.cramfs -b 16384 rootfs2 cramfs.imgs

備注:-b參數,大小與PAGE_SIZE(linux內核的配置)一樣,具體-b的實際意義請你通過man mkfs.cramfs查看

把制作好的根文件系統拷貝到tftp服務器的目錄中:

cp cramfs.imgs/home/tftpboot/

修改權限:

chmod777/home/tftpboot/cramfs.imgs

配置開發板的IP地址:

ifconfig syn0 10.50.122.253

燒寫命令:

devcp tftp://10.10.122.24/cramfs.imgs/dev/mtd1

啟動內核(以下命令在開發板上執行):

load tftp://10.50.122.23/vmlinux

g console=ttyS0,115200 rdinit=/sbin/init rootfstype=cramfs rw root=/dev/mtdblock1

2.3 jffs2文件系統的制作和啟動

mkfs.jffs2 -r rootfs2 -o rootfs2.jffs2 -e 0x20000 --pad=0x2000000 -n

-r:指定要生成 image 的目錄名

-o:指定輸出image的文件名

-e:每一塊要擦除的block size,不同的flash,block size會不一樣。這里為128KB

-pad:用16進制來表示所要輸出文件的大小,也就是 rootfs-jffs2.img 的大小,如果實際大小不足此設定的大小,則用0xFF補足

-n,-no-cleanmarkers:指明不添加清楚標記(nand-flash有自己的校檢塊,存放相關的信息)

把制作好的根文件系統拷貝到tftp服務器的目錄中:

cp rootfs2.jffs2/home/tftpboot/

修改權限:

chmod 777 /home/tftpboot/rootfs2.jffs2

配置開發板的IP地址:

ifconfig syn0 10.50.122.253

燒寫命令:

devcp tftp://10.10.122.24/rootfs2.jffs2/dev/mtd1

啟動內核(以下命令在開發板上執行):

load tftp://10.50.122.23/vmlinux

g console=ttyS0,115200 rdinit=/sbin/init rootfstype=jffs2 rw root=/dev/mtdblock1

3 龍芯派系統安裝

基于龍芯2K1000龍芯派的硬件沒有Flash,因此基于龍芯2K1000龍芯派的內核要從SD卡、U盤或者網絡加載,同時上面介紹的文件系統也存儲在這些介質中。本文實驗所采取的是用一張內存為16G的SD卡,因此,我們的文件系統和內核都存于這張SD卡中。

龍芯派目前提供三種系統的安裝,Loongnix、CentOS和SylixOS。其中Loongnix與CentOS類似,安裝時需要復制2部分內容:內核與文件系統,且這兩種系統使用的內核相同。SylixOS采用官方提供的一鍵安裝工具制作啟動盤直接完成。本文實驗所采用的是CentOS系統。

龍芯派采用啟動盤啟動。動盤可使用U盤或者SD卡。下面以U盤(插入USB讀卡器的SD卡等同于U盤)為例制作啟動盤。啟動盤上必須存放必要的內核及系統。

3.1 內核和文件系統的下載與制作方法

內核和文件系統都是從龍芯派的官網下載的,于Linux內核和Loongnix、CentOS系統的啟動盤必須自行制作,制作環境必須是Linux操作系統。可在虛擬機開啟Linux操作系統制作啟動盤,也可以使用安裝Linux操作系統的機器制作。這里采用虛擬機的方法。

3.2 CentOS系統安裝

3.2.1 啟動盤分區格式化

啟動虛擬機,插入我們的SD卡,這是Windows提示有USB設備插入,此時要在主機將此USB設備彈出,虛擬機才能連接USB設備。接著在虛擬機的可移動設備中連接此USB設備。

命令終端查看連接的USB設備,即看到已經連接的USB設備。

(1)首先我們對SD卡進行分區,操作如下:

root@ubuntu:~# fdisk/dev/sdb//操作分區/dev/sdb

Welcome to fdisk (util-linux 2.27.1).

Changes will remain in memory only,until you decide to write them.

Be careful before using the write command.

Command (m for help):d//刪除分區

Selected partition 1//選擇分區1,直接按Enter鍵

Partition 1 has been deleted.

Command (m for help):n//新建分區

Partition type

p primary (0 primary,0 extended,4 free)

e extended (container for logical partitions)

Select(default p)://缺省為主分區,直接按Enter鍵

Using default response p.

Partition number (1-4,default 1)://缺省為分區1,直接按Enter鍵

First sector(2048-60063743,default 2048)://停頓處直接按Enter鍵

Last sector,+sectors or +size{K,M,G,T,P} (2048-60063743,default 60063743):+512M//第一分區為512M

Created a new partition 1 of type 'Linux' and of size 512 MB.

Command(m for help):n//新建分區

Partition type

p primary (1 primary,0 extended,3 free)

e extended (container for logical partitions)

Select(default p)://缺省為主分區,直接按Enter鍵

Using default response p.

Partition number (2-4,default 2)://缺省為分區 2,直接按Enter鍵

First sector(1050624-60063743,default 1050624):

Last sector,+sectors or +size{K,M,G,T,P} (1050624-60063743,default 60063743)://缺省剩下容量,直接按Enter鍵

Created a new partition 2 of type 'Linux' and of size 28.1 GiB.

Command (m for help):w//保存退出

The partition table has been altered.

Calling ioctl() to re-read partition table.

Re-reading the partition table failed.:Device or resource busy

The kernel still uses the old table. The new table will be used at the next reboot or after you run partpr

obe(8) or kpartx(8).

root@ubuntu:~# fdisk -l

……

Device Boot Start End Sectors Size Id Type

/dev/sdb1 2048 1050623 1048576 512M 83 Linux

/dev/sdb2 1050624 60063743 59013120 28.1G 83 Linux

使用的命令總結,其它的均按Enter鍵。

fdisk -l//查看當前分區

fdisk /dev/sdb//操作分區/dev/sdb

d //刪除分區

n //新建分區

+512M//第一分區為 512M

w //保存退出

(2)其次我們要對SD卡進行格式化操作。

root@ubuntu:~# umount/dev/sdb1

root@ubuntu:~# mkfs.ext3/dev/sdb1//格式化第一個分區

mke2fs 1.42.13 (17-May-2015)

/dev/sdb1 contains a vfat file system

Proceed anyway?(y,n) y

Creating filesystem with 7507712 4k blocks and 1880480 inodes

Filesystem UUID:0ad55ff6-70ec-496d-8399-57c6c27e5a67

Superblock backups stored on blocks:

32768,98304,163840,229376,294912,819200,884736,1605632,2654208,4096000

Allocating group tables:done

Writing inode tables:done

Creating journal(32768 blocks):done

Writing superblocks and filesystem accounting information://停頓處,直接按Enter鍵

Done

root@ubuntu:~# mkfs.ext3 /dev/sdb2//格式化第二個分區

mke2fs 1.42.13 (17-May-2015)

Creating filesystem with 7376640 4k blocks and 1844160 inodes

Filesystem UUID:b6f5661a-cfb7-4958-9483-e5a40e4762c1

Superblock backups stored on blocks:

32768,98304,163840,229376,294912,819200,884736,1605632,2654208,4096000

Allocating group tables:done

Writing inode tables:done

Creating journal (32768 blocks):done

Writing superblocks and filesystem accounting information://停頓處,直接按Enter鍵

Done

(3)最后使用的命令總結。

umount /dev/sdb1 //缷載U盤分區1

mkfs.ext3 /dev/sdb1 //格式化U盤分區1為ext3

mkfs.ext3 /dev/sdb2 //格式化 U 盤分區2為ext3

3.2.2 啟動盤的相關配置

現在,我們已經在官網下載好我們所用安裝的內核CentOS,也已經將SD卡分區并格式化,接下來,我們要將下載的Linux內核/loongsonpi/os/new_fedora21/vmlinux 復制到分區1根目錄下。解壓并復制后的CentOS分區1如圖3所示。

再將/loongsonpi/os/CentOS6.4-Multilibs-mips64-RC2-Build009-20150701.iso解壓并復制到分區2的根目錄下,解壓的時間會很長(30分鐘以上)。解壓后并復制后的分區2的文件系統如圖4所示。

在CentOS系統分區1和分區2還要修改一些配置,如圖5啟動盤配置的修改。

修改步驟:

(1)分區2 /boot目錄修改,添加boot.cfg文件;

(2)內核復制到分區2 /boot目錄下;

(3)分區2 /etc/X11/xorg.conf.d/xorg.conf.2h。

然后卸載啟動盤,將我們制作好的文件系統和啟動盤這張SD卡插入龍芯派板子,上電啟動。開機后加載內核,然后啟動系統。控制臺啟動如圖6CentOS啟動后控制臺輸出的停止界面所示。

4 結 論

本文基于國產芯片Loognson龍芯派這塊板子,大致介紹了Loognson龍芯派的一些主要參數和性能,詳細為大家介紹了基于Loognson龍芯派的bootloader內核引導、文件系統制作和啟動盤的制作。當前我國集成電路的發展正在一步步走向正軌,芯片Loognson是一款性能非常好的嵌入式應用芯片,應用范圍相當廣泛。本文將Loognson龍芯派的啟動和使用方法都記錄了下來,相信對大家有很高的使用價值。

參考文獻:

[1] 李菲.嵌入式氣象采集系統及網絡實時性研究 [D].天津:河北工業大學,2011.

[2] 楊霞.基于OMAP3530以太網視頻采集系統的設計與實現 [D].南京:南京郵電大學,2011.

[3] 史順玉.基于北斗衛星導航系統的智能車載終端設計 [D].青島:中國海洋大學,2014.

[4] 王洪虎,譚悅,申利民.基于嵌入式Cramfs的根文件系統配置新方法 [J].微計算機信息,2010,26(17):78-80.

[5] 孫九瑞,孫曉晨.基于ZigBee的圖書館環境監控系統設計 [J].應用科技,2015,42(3):49-54.

[6] 李鐵柱.基于LINUX的數字電視軟件通用升級系統 [D].青島:中國海洋大學,2014.

[7] 張久強,施仁政,陳遠知.基于ZigBee的WSN節點嵌入式軟件研究與開發 [C]//第八屆全國信號和智能信息處理與應用學術會議.第八屆全國信號和智能信息處理與應用學術會議會刊.中國青海:《計算機工程與應用》雜志社(THE PUBLISHING HOUSE OF COMPUTER ENGINEERING AND APPLICATIONS),2014:341-344.

[8] 焦鍵.嵌入式系統基礎及應用 [M].重慶:重慶大學出版社,2014.

[9]徐志永.基于嵌入式LINUX的網絡存儲與共享平臺研究 [D].哈爾濱:哈爾濱工程大學,2007.

[10] 張菊莉,張君毅,孟小鎖.基于龍芯2F架構的PMON分析與優化 [J].現代電子技術,2011,34(2):19-21.

[11] 史巧碩,范東月,柴欣,等.嵌入式Linux根文件系統的構建與分析 [J].計算機測量與控制,2015,23(2):656-659+663.

[12] 孫冬梅,石南.嵌入式LINUX系統設計及應用 [M].北京:清華大學出版社,2017:7-34.

作者簡介:徐意泊(1993-),男,漢族,河南洛陽人,碩士研究生。主要研究方向:嵌入式單片機、氣象設備儀器;陳富浩(1993-),男,漢族,四川德陽人,碩士研究生。主要研究方向:嵌入式單片機、氣象設備儀器;丁振華(1994-),男,漢族,江蘇泰州人,碩士研究生。主要研究方向:FPGA、DSP、數字信號處理;楊筆鋒(1980-),男,漢族,福建漳州人,副教授,碩士。主要研究方向:氣象探測技術及應用、信號獲取技術及應用。

主站蜘蛛池模板: 天堂中文在线资源| 五月婷婷丁香综合| 国产亚洲美日韩AV中文字幕无码成人| 精品無碼一區在線觀看 | 久久五月视频| 高清码无在线看| 久久国产乱子| 美女毛片在线| 超碰91免费人妻| 色亚洲激情综合精品无码视频| 日韩小视频在线观看| 亚洲系列中文字幕一区二区| 青草午夜精品视频在线观看| 欧美有码在线| 亚洲欧洲日韩国产综合在线二区| 国产女人在线观看| 欧美h在线观看| 亚洲国模精品一区| 国产福利免费视频| 久久久久久久蜜桃| 亚洲中字无码AV电影在线观看| 97国产在线观看| 夜夜拍夜夜爽| 久久国产热| 国产欧美在线观看视频| 精品综合久久久久久97超人| 黄色三级网站免费| 国产精品久久久久久搜索| 亚洲中文字幕日产无码2021| 亚洲日韩国产精品综合在线观看| 亚洲国产综合自在线另类| 成人精品亚洲| 国产永久在线视频| 国产在线一区二区视频| 日本少妇又色又爽又高潮| 亚洲一区无码在线| 亚洲色图欧美在线| 日韩欧美一区在线观看| 青青操视频在线| 亚洲第一页在线观看| 久久综合伊人 六十路| 国产亚洲精品97AA片在线播放| 国产区免费| 中文字幕波多野不卡一区| 日本免费福利视频| 中文字幕乱码二三区免费| 伊伊人成亚洲综合人网7777| 高潮毛片无遮挡高清视频播放| 手机成人午夜在线视频| 国产xxxxx免费视频| 97视频精品全国免费观看| 国产在线观看人成激情视频| 国产麻豆aⅴ精品无码| 久久男人视频| 女同久久精品国产99国| 久久久久久尹人网香蕉 | 久久毛片基地| 国产精品久久久久婷婷五月| 亚洲视频四区| 亚洲侵犯无码网址在线观看| 亚洲欧美不卡| 日本成人一区| 日韩精品一区二区三区免费在线观看| 一本大道视频精品人妻| 亚洲欧美激情小说另类| 女人18一级毛片免费观看| 伊人中文网| 精品無碼一區在線觀看 | 国产成人在线无码免费视频| 老司机精品久久| 亚洲av无码牛牛影视在线二区| 国产精品久线在线观看| 精品久久综合1区2区3区激情| 91福利一区二区三区| 午夜免费小视频| 青青青视频蜜桃一区二区| 久操线在视频在线观看| 波多野结衣一区二区三区四区| 亚洲黄色网站视频| 国产一区二区三区日韩精品| 91丝袜美腿高跟国产极品老师| 亚洲AV无码乱码在线观看裸奔|