91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

又一位純手工打造CPU的牛人 匯編語言實現(xiàn)類Unix系統(tǒng)!

GReq_mcu168 ? 來源:安富萊電子 ? 作者:安富萊電子 ? 2021-03-18 11:00 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

硬件設(shè)計

GR8CPU是在面包板上構(gòu)建功能齊全的計算機。第一個版本GR8CPU Rev2擁有600多條電線,74個集成電路和79個LED燈。它是一個8位架構(gòu),考慮了簡單性和處理能力。CPU可以訪問256字節(jié)的RAM,已經(jīng)為其編寫了功能齊全的Tic-Tac-Toe游戲。

到目前為止,正在構(gòu)建第二個GR8CPU Rev3。有很多有趣的工作要做:具有65536字節(jié)的內(nèi)存,改進的算法和設(shè)計更高的速度,該CPU是有史以來最復(fù)雜的面包板CPU。

最早效果:

RAM模塊已完成:

設(shè)計ALU:

完成ALU設(shè)計:

視頻卡設(shè)計:

完成視頻輸出電路:

類Unix系統(tǒng)設(shè)計

GR8NIX是受Unix啟發(fā)的操作系統(tǒng),Unix是1970年代發(fā)布的簡單多用戶,多任務(wù)的操作系統(tǒng)?;趗nix的思想的現(xiàn)代操作系統(tǒng)包括Linux, MacOS和Android等。GR8CPU Rev3用匯編語言編寫,內(nèi)核由2000行匯編實現(xiàn),5KB代碼:

(1)多線程支持32個并發(fā)線程。

(2)理論上不受限制的運行程序數(shù)量。

(3)動態(tài)內(nèi)存分配,當前大小最大為8 KB。

(4)真正的程序執(zhí)行與位置無關(guān)(動態(tài)應(yīng)用程序加載)。

但是,GR8NIX并不完美,由于硬件限制,GR8NIX無法:

(1)保護內(nèi)存免受進程侵害。

(2)從嘗試運行無效指令中恢復(fù)。

(3)可靠地防止進程退出后發(fā)生內(nèi)存泄漏。

實現(xiàn)了動態(tài)內(nèi)存管理后,開始文件系統(tǒng)的制作,實現(xiàn)從磁盤中加載文件:

在視頻展示中,大家可以看到gr8nix變得栩栩如生,它成功加載并運行了一個Shell程序,該程序又加載并運行了大家想要的任何其他程序。

首先,Exec負責加載程序并運行它們。Exec首先進行一些完整性檢查:文件是否存在?它是程序文件嗎?這是有效的嗎?接下來,Exec通過檢查每個條目并將其偏移量添加到其長度中來查找可執(zhí)行文件的長度。Exec找到的長度是這些計算出的最大長度。

此后,Exec調(diào)用thread_launch,這是一種用于準備啟動線程的方法。Exec通過向過程中添加一些原始數(shù)據(jù)來完成:用戶ID,指向分配的內(nèi)存指針,運行的命令行以及工作目錄等等。

編輯:jq


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • led
    led
    +關(guān)注

    關(guān)注

    243

    文章

    24594

    瀏覽量

    690816
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    11277

    瀏覽量

    224954
  • ALU
    ALU
    +關(guān)注

    關(guān)注

    0

    文章

    34

    瀏覽量

    13519

原文標題:厲害了!又一位純手工打造CPU的牛人,并且匯編語言實現(xiàn)類Unix系統(tǒng),支持文件系統(tǒng)

文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    講解C語言代碼的實現(xiàn)過程

    重點講解C語言代碼的實現(xiàn)過程,算法的C語言實現(xiàn)過程具有般性,通過PID算法的C語言實現(xiàn),可以以此類推,設(shè)計其它算法的C
    發(fā)表于 01-21 07:58

    C語言主要特點

    。 5.語法限制不太嚴格,程序設(shè)計自由度大。 6.C語言允許直接訪問物理地址,能進行(bit)操作,能夠實現(xiàn)匯編語言的大部分功能,可以直接對硬件進行操作。因此C語言即具有高級
    發(fā)表于 01-05 07:41

    請問芯源CW32 MCU支持哪些匯編語言

    芯源CW32 MCU支持哪些匯編語言?
    發(fā)表于 12-23 06:14

    C語言中可以嵌套匯編語言嗎?

    請問C語言中可以嵌套匯編語言嗎?
    發(fā)表于 12-15 08:14

    匯編語言還有必要學習嗎

    1、嵌入式操作系統(tǒng)需要匯編語言 2、實時性要求非常高的地方,需要匯編語言,比如FFT算法。 3、匯編語言做運算那叫個痛苦,下面是
    的頭像 發(fā)表于 11-25 11:46 ?631次閱讀
    <b class='flag-5'>匯編語言</b>還有必要學習嗎

    匯編語言的起源

    匯編語言是什么? 我們知道,CPU 只負責計算,本身不具備智能。你輸入條指令(instruction),它就運行次,然后停下來,等待
    發(fā)表于 11-20 07:19

    匯編寄存器的知識

    學習匯編語言,首先必須了解兩個知識點:寄存器和內(nèi)存模型。 先來看寄存器。CPU 本身只負責運算,不負責儲存數(shù)據(jù)。數(shù)據(jù)般都儲存在內(nèi)存之中,CPU 要用的時候就去內(nèi)存讀寫數(shù)據(jù)。 但是
    發(fā)表于 11-20 06:45

    C語言和單片機C語言有什么差異

    匯編語言機器才能讀懂,所以每個平臺的編譯器編譯成對應(yīng)平臺匯編的程序,每個平臺的匯編樣,當然編譯器也不樣。 DOS上的TC2 TC3 W
    發(fā)表于 11-14 07:55

    RVMCU課堂「7」: 手把手教你玩轉(zhuǎn)RVSTAR—匯編程序篇

    相對于抽象層次更高的C/C++語言,匯編語言門抽象層次比較低的語言,面向的是最底層的硬件,直接使用處理器的基本指令。雖然現(xiàn)在大多數(shù)的程序設(shè)計已經(jīng)不再使用
    發(fā)表于 10-31 08:46

    通過內(nèi)聯(lián)匯編調(diào)用乘法指令mulh\\mulhsu\\mulhu

    1.蜂鳥E203內(nèi)核支持的乘法指令有四種(不含融合指令),分別為mul、mulh、mulhu與mulhsu。它們的匯編語言格式如下: mulrd,rs1, rs2 將兩個32整數(shù)相乘,取低
    發(fā)表于 10-24 06:52

    ARM入門學習方法分享

    使用些在線資源,如ARM的官方文檔和教程,來學習ARM匯編語言。 三、使用開發(fā)工具:為了進行ARM的開發(fā),你會需要些開發(fā)工具。ARM提供了些免費的開發(fā)工具,例如Keil MDK
    發(fā)表于 07-23 10:21

    匯編語言教學中文資料

    電子發(fā)燒友網(wǎng)站提供《匯編語言教學中文資料.rar》資料免費下載
    發(fā)表于 06-30 15:15 ?7次下載

    Windows環(huán)境下32匯編語言中文資料

    電子發(fā)燒友網(wǎng)站提供《Windows環(huán)境下32匯編語言中文資料.rar》資料免費下載
    發(fā)表于 06-30 15:14 ?0次下載

    單片機C語言實例(350+例)

    350+單片機C語言實例! 純分享帖,需要者可點擊附件免費獲取完整資料~~~【免責聲明】本文系網(wǎng)絡(luò)轉(zhuǎn)載,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請第時間告知,刪除內(nèi)容!
    發(fā)表于 05-22 21:47

    Linux主要的性能有哪些?

    ? 什么是Linux? ? Linux是套自由傳播的Unix操作系統(tǒng),是個基于posix和unix
    的頭像 發(fā)表于 04-30 18:09 ?654次閱讀
    Linux主要的性能有哪些?