日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

來源:量子位

CEO 親自寫的代碼是啥樣?

來自 RealVNC 公司的 CEO 說,自己長年當管理者,代碼生疏了,所以決定重拾一下程序員工作,寫一點樹莓派的代碼。

結果,一不小心就上了技術論壇 Hacker News 熱門。

這串代碼究竟是什么?打開這位 CEO 的 Twitter 一看,是一段小游戲。

花了一年時間就寫了個這?當然不是,這位 CEO 可是從零開始打造的這款游戲,連系統啟動文件都是自己寫的。

通常我們使用樹莓派都會在 SD 卡上刷寫好操作系統,其實樹莓派還能從零開始打造成一款 " 裸金屬 "(Bare Metal)計算機。

所謂 " 裸金屬 " 就是沒有操作系統的計算機,直接在邏輯硬件上執行指令。這位 CEO 說,打造一個裸金屬系統是他兒時的志向。

所以就有了這串,從零開始到成功運行 Hello World,再到運行小游戲的程序。

從啟動硬件到 Hello World

目前,該項目已經完成了 12 章,仍在 GitHub 上繼續更新中,截至今天已經收獲了 1.6k 星。

項目內容有:啟動、構建基本代碼、運行 HelloWorld、調用藍牙聲音硬件等。

在編寫代碼之前先要準備樹莓派 4 的周邊硬件:HDMI 線、micro-SD 卡以及USB 轉 TTL 線

由于編譯過程是在電腦上進行,而程序是在樹莓派上運行,因此還要在電腦上安裝交叉編譯器

接下來開始引導樹莓派啟動:

樹莓派 4 運行的第一個代碼需要用匯編語言編寫,之后由 C 語言來編寫內核。

寫好啟動代碼后,再制作 makefile 文件進行交叉編譯。

CFILES = $ ( wildcard *.c ) OFILES = $ ( CFILES:.c=.o ) GCCFLAGS = -Wall -O2 -ffreestanding -nostdinc -nostdlib -nostartfilesGCCPATH = ../../gcc-arm-10.3-2021.07-x86_64-aarch64-none-elf/binall: clean kernel8.imgboot.o: boot.S$ ( GCCPATH ) /aarch64-none-elf-gcc $ ( GCCFLAGS ) -c boot.S -o boot.o%.o: %.c$ ( GCCPATH ) /aarch64-none-elf-gcc $ ( GCCFLAGS ) -c $< -o [email protected]: boot.o $ ( OFILES ) $ ( GCCPATH ) /aarch64-none-elf-ld -nostdlib boot.o $ ( OFILES ) -T link.ld -o kernel8.elf$ ( GCCPATH ) /aarch64-none-elf-objcopy -O binary kernel8.elf kernel8.imgclean:/bin/rm kernel8.elf .o .img > /dev/null 2> /dev/null || true

運行 make 后構建內核映像 kernel8.img,將鏡像文件復制到 SD 卡中,這樣就可以啟動樹莓派了。

不過樹莓派在這一通操作后只能運行啟動畫面,之后只剩下一個空的黑屏。

然后就是讓樹莓派程序員熟悉的 "Hello World" 程序,但是在一臺黑屏的機器上如何運行呢?這就需要用到 UART 串行通信。

剛剛準備的 USB 轉 TTL 線這時候就派上了用場。

將 TTL 的 RX 引線(白色)鏈接到 GPIO 的 TXD 引腳上,TX 引線(綠色)鏈接到 GPIO 的 RXD 引腳上,地線(黑線)連接到 Ground 引腳上。

電腦上還要安裝 PuTTY,將鏈接方式選擇為 "Serial",Speed 設置為 115200

#include "io.h"voidmain ( ) {uart_init ( ) ;uart_writeText ( "Hello world!n" ) ;while ( 1 ) ;}

這里的頭文件 io.h 也不存在,需要自己定義。

但是此時的樹莓派還有沒字體文件,也就是屏幕無法正常顯示英文字母,也需要自定義。經過一系列操作后,這位 CEO 終于在屏幕上成功顯示了 "Hello world!" 和幾個幾何圖形。

編程并沒有到此截止,這位 CEO 后面又實現了對藍牙互傳信息、播放音頻文件等操作。他還表示,項目還在持續更新中。

關于作者

" 裸金屬 " 樹莓派的作者 Adam Greenwood-Byrne 畢業于牛津大學,2009 年加入 RealVNC 擔任銷售經理,2018 年成為這家公司 CEO。

他的 GitHub 主頁上目前只有一個項目,第一章內容是他在疫情隔離期間完成的,之后項目就處于休眠狀態。

不過從今年的活躍度來看,他從今年開始又重拾了該項目,開始認真寫代碼了。

分享到:
標簽:三星 代碼 運行 啟動 這位 芯片 華為 金屬
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定