国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

F1C200S/F1C100S修改U-BOOT調(diào)試串口為UART1(PD3,PD4)

這篇具有很好參考價值的文章主要介紹了F1C200S/F1C100S修改U-BOOT調(diào)試串口為UART1(PD3,PD4)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

F1C200S/F1C100S修改U-BOOT調(diào)試串口為UART1(PD3,PD4)

此處用的uboot是荔枝派nano的
可以從荔枝派的倉庫拉取
修改好的在這

看數(shù)據(jù)手冊

查看串口掛載總線

查看數(shù)據(jù)手冊
根據(jù)總線圖可以看出串口是掛載在APB總線上面的
F1C200S/F1C100S修改U-BOOT調(diào)試串口為UART1(PD3,PD4),F1C200S,linux,驅(qū)動開發(fā)

找到總線時鐘設置部分

使能UART1控制器時鐘
原本以為要改這,但是后來發(fā)現(xiàn)不需要修改。。。
F1C200S/F1C100S修改U-BOOT調(diào)試串口為UART1(PD3,PD4),F1C200S,linux,驅(qū)動開發(fā)

設置GPIO引腳復用功能

直接pdf搜索要設置的引腳,找到寄存器
可以看到是gpio基地址+0x068偏移地址這個寄存器的第[14:12]位與[18:16]位都是寫011也就是十進制3(這個十進制數(shù)后面要用)
F1C200S/F1C100S修改U-BOOT調(diào)試串口為UART1(PD3,PD4),F1C200S,linux,驅(qū)動開發(fā)
可以看一下原來串口0的引腳配置是寫101也就是5
F1C200S/F1C100S修改U-BOOT調(diào)試串口為UART1(PD3,PD4),F1C200S,linux,驅(qū)動開發(fā)

分析uboot串口初始化流程

初始化函數(shù)

在目錄u-boot/arch/arm/mach-sunxi/board.c下
F1C200S/F1C100S修改U-BOOT調(diào)試串口為UART1(PD3,PD4),F1C200S,linux,驅(qū)動開發(fā)
串口初始化肯定需要初始化總線時鐘,所以先看clock_init()
通過代碼追蹤可以找到在u-boot/arch/arm/mach-sunxi/clock.c下有clock_init_uart()
看函數(shù)名字就知道這是串口時鐘初始化,跳轉(zhuǎn)進入
在目錄u-boot/arch/arm/mach-sunxi/clock_sun6i.c下
芯片是suniv到這為啥在clock_sun6i.c下面是為啥,有沒有大佬清楚。。。。
F1C200S/F1C100S修改U-BOOT調(diào)試串口為UART1(PD3,PD4),F1C200S,linux,驅(qū)動開發(fā)
F1C200S/F1C100S修改U-BOOT調(diào)試串口為UART1(PD3,PD4),F1C200S,linux,驅(qū)動開發(fā)
(本以為這里需要修改,結果最后發(fā)現(xiàn)不用。。所以就略過略過。。。。)
(改了也能用,但是spl部分信息打印串口還在串口0。。。。所以還是按完整的來寫了)

修改初始化代碼

初始化GPIO
在目錄u-boot/arch/arm/mach-sunxi/board.c下
F1C200S/F1C100S修改U-BOOT調(diào)試串口為UART1(PD3,PD4),F1C200S,linux,驅(qū)動開發(fā)
可以看到原GPIO初始化有個宏來指定

#define CONFIG_CONS_INDEX 1//串口0
#define CONFIG_CONS_INDEX 2//串口1
#define CONFIG_CONS_INDEX 3//串口2

所以添加一個串口1的代碼
照抄串口0的就好了

#elif CONFIG_CONS_INDEX == 2 && defined(CONFIG_MACH_SUNIV)
	sunxi_gpio_set_cfgpin(SUNXI_GPD(3), SUNIV_GPD_UART1);
	sunxi_gpio_set_cfgpin(SUNXI_GPD(4), SUNIV_GPD_UART1);
	sunxi_gpio_set_pull(SUNXI_GPD(4), SUNXI_GPIO_PULL_UP);

然后找到串口0所使用的引腳功能選擇的宏
正在目錄u-boot/arch/arm/include/asm/arch-sunxi/gpio.h下
仿照串口0引腳配置方式添加串口1引腳
這里就是上面看寄存器手冊時計算的復用功能十進制值
原串口0引腳為5,所以仿照添加一個串口1所對應引腳的

// 添加PD串口1
#define SUNIV_GPD_UART1		3

F1C200S/F1C100S修改U-BOOT調(diào)試串口為UART1(PD3,PD4),F1C200S,linux,驅(qū)動開發(fā)
添加串口選擇的宏(重要!?。。?br> 此處有坑
在u-boot/include/configs/suniv.h下添加

#undef CONFIG_CONS_INDEX
#define CONFIG_CONS_INDEX 2

也就是選擇串口1進行初始化
在u-boot/include/configs/sunxi-common.h下注釋掉下面圖中部分不然編譯會報錯
F1C200S/F1C100S修改U-BOOT調(diào)試串口為UART1(PD3,PD4),F1C200S,linux,驅(qū)動開發(fā)

修改設備樹

修改dts文件
在u-boot/arch/arm/dts/suniv-f1c100s-licheepi-nano.dts
把原先的串口0改為串口1并在下面仿照串口0添加串口1如下圖

F1C200S/F1C100S修改U-BOOT調(diào)試串口為UART1(PD3,PD4),F1C200S,linux,驅(qū)動開發(fā)

aliases {
    // serial0 = &uart0;
    serial1 = &uart1;
    spi0 = &spi0;
};

chosen {
    // stdout-path = "serial0:115200n8";
    stdout-path = "serial1:115200n8";
};

F1C200S/F1C100S修改U-BOOT調(diào)試串口為UART1(PD3,PD4),F1C200S,linux,驅(qū)動開發(fā)

&uart1 {
	pinctrl-names = "default";
	pinctrl-0 = <&uart1_pins_a>;
	status = "okay";
};

修改dtsi文件
在u-boot/arch/arm/dts/suniv.dtsi
同樣仿照串口0添加串口1
F1C200S/F1C100S修改U-BOOT調(diào)試串口為UART1(PD3,PD4),F1C200S,linux,驅(qū)動開發(fā)

uart1_pins_a: uart-pins-pd {
    pins = "PD3", "PD4";
    function = "uart1";
};

修改menuconfig設置(給內(nèi)核傳參用的,不起內(nèi)核不改也無所謂)

回到uboot根目錄 執(zhí)行make menuconfig
把原來的串口0改為串口1保存即可
F1C200S/F1C100S修改U-BOOT調(diào)試串口為UART1(PD3,PD4),F1C200S,linux,驅(qū)動開發(fā)
F1C200S/F1C100S修改U-BOOT調(diào)試串口為UART1(PD3,PD4),F1C200S,linux,驅(qū)動開發(fā)

完工

編譯

make -j16

插內(nèi)存卡燒錄

sudo dd if=u-boot-sunxi-with-spl.bin of=/dev/sdb bs=1024 seek=8

完成
spl信息與uboot信息都從串口1打印出來了
可以看到輸入輸出與錯誤信息打印地址都為1c25400(串口1基地址)

In:    serial@1c25400
Out:   serial@1c25400
Err:   serial@1c25400

引腳為PD3,PD4
F1C200S/F1C100S修改U-BOOT調(diào)試串口為UART1(PD3,PD4),F1C200S,linux,驅(qū)動開發(fā)
最后方張半翻車板子照片
F1C200S/F1C100S修改U-BOOT調(diào)試串口為UART1(PD3,PD4),F1C200S,linux,驅(qū)動開發(fā)文章來源地址http://www.zghlxwxcb.cn/news/detail-633812.html

到了這里,關于F1C200S/F1C100S修改U-BOOT調(diào)試串口為UART1(PD3,PD4)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 7、Lctech Pi(F1C200S)開啟RNDIS,通過USB與電腦聯(lián)網(wǎng)(CherryPi,Mangopi,F(xiàn)1C100S)

    7、Lctech Pi(F1C200S)開啟RNDIS,通過USB與電腦聯(lián)網(wǎng)(CherryPi,Mangopi,F(xiàn)1C100S)

    本次主要參考: 荔枝nano開啟RNDIS驅(qū)動,無需補丁。 https://github.com/peng-zhihui/Planck-Pi#head23 https://github.com/mangopi-sbc/buildroot-mangopi-r https://www.cnblogs.com/listenscience/p/13758272.html (如果方便請給這幾位大佬一個關注) 注意代碼塊之間的空行 本次是摸索出來的,如果用到項目需慎重,有

    2024年02月12日
    瀏覽(40)
  • 全志F1C200S嵌入式驅(qū)動開發(fā)(GPIO輸出)

    全志F1C200S嵌入式驅(qū)動開發(fā)(GPIO輸出)

    【 聲明:版權所有,歡迎轉(zhuǎn)載,請勿用于商業(yè)用途。 聯(lián)系信箱:feixiaoxing @163.com】 ? ? ? ? 和v3s一樣,f1c200s本身的外部引腳比較少。所以這個時候,不可避免地,很多引腳的功能就會重疊在一起。這種情況下,我們就要學會取舍了。比如說,如果是學習sd卡的時候,那么s

    2024年02月16日
    瀏覽(27)
  • 全志F1C200S嵌入式驅(qū)動開發(fā)(lcd屏幕驅(qū)動)

    全志F1C200S嵌入式驅(qū)動開發(fā)(lcd屏幕驅(qū)動)

    【 聲明:版權所有,歡迎轉(zhuǎn)載,請勿用于商業(yè)用途。 聯(lián)系信箱:feixiaoxing @163.com】 ? ? ? ? lcd RGB屏幕作為比較經(jīng)濟、實用的顯示工具,在實際場景中使用較多。它的信號來說,一般也比較簡單,除了常規(guī)的數(shù)據(jù)信號,剩下來就是行同步、場同步、數(shù)據(jù)使能和時鐘信號了。數(shù)

    2024年02月14日
    瀏覽(26)
  • 全志F1C200S嵌入式驅(qū)動開發(fā)(soc系統(tǒng)集成)

    全志F1C200S嵌入式驅(qū)動開發(fā)(soc系統(tǒng)集成)

    【 聲明:版權所有,歡迎轉(zhuǎn)載,請勿用于商業(yè)用途。 聯(lián)系信箱:feixiaoxing @163.com】 ? ? ? ? 任何一個嵌入式設備都是由很多的子系統(tǒng)組成的。這里面有硬件、有軟件,還可能有機械,并不一定就是大家看到的消費電子那樣,即一個soc構成了所有的系統(tǒng)?,F(xiàn)實情況是,要構建

    2024年02月12日
    瀏覽(21)
  • 全志F1C200S嵌入式驅(qū)動開發(fā)(從DDR中截取內(nèi)存)

    全志F1C200S嵌入式驅(qū)動開發(fā)(從DDR中截取內(nèi)存)

    【 聲明:版權所有,歡迎轉(zhuǎn)載,請勿用于商業(yè)用途。 聯(lián)系信箱:feixiaoxing @163.com】 ? ? ? ? linux內(nèi)核起來的時候,不一定所有的內(nèi)存都是分配給linux使用的。有的時候,我們是希望能夠截留一部分內(nèi)存的。為什么保留這部分內(nèi)存呢?這里面可以有很多的用途。 比如說,第一,

    2024年02月14日
    瀏覽(27)
  • 全志F1C200S嵌入式驅(qū)動開發(fā)(spi-nand驅(qū)動)

    全志F1C200S嵌入式驅(qū)動開發(fā)(spi-nand驅(qū)動)

    【 聲明:版權所有,歡迎轉(zhuǎn)載,請勿用于商業(yè)用途。 聯(lián)系信箱:feixiaoxing @163.com】 ? ? ? ? 和v3s一樣,f1c200s也支持tf卡、spi-nor、spi-nand啟動。前面也說過,tf卡由于機械結構的原因,更適合拿來學習,spi-nor和spi-nand比較適合用來進行工業(yè)部署和消費娛樂領域。只是spi-nor容量

    2024年02月16日
    瀏覽(52)
  • 全志F1C200S嵌入式驅(qū)動開發(fā)(調(diào)整cpu頻率和dram頻率)

    全志F1C200S嵌入式驅(qū)動開發(fā)(調(diào)整cpu頻率和dram頻率)

    【 聲明:版權所有,歡迎轉(zhuǎn)載,請勿用于商業(yè)用途。 聯(lián)系信箱:feixiaoxing @163.com】 ? ? ? ? f1c200s默認的cpu頻率是408M,默認的dram頻率是156M。這兩個數(shù)值,坦白說,都算不上特別高的頻率。因為我們的晶振是24M輸入,所以408/24=17,相當于整個cpu的頻率只是晶振倍頻了17倍。然

    2024年02月15日
    瀏覽(27)
  • 全志F1C200S嵌入式驅(qū)動開發(fā)(spi-nor image制作)

    全志F1C200S嵌入式驅(qū)動開發(fā)(spi-nor image制作)

    【 聲明:版權所有,歡迎轉(zhuǎn)載,請勿用于商業(yè)用途。 聯(lián)系信箱:feixiaoxing @163.com】 ? ? ? ? 一般soc系統(tǒng)里面添加spi-nor flash芯片,特別是對linux soc來說,都是把它當成文件系統(tǒng)來使用的。spi-nor flash和spi-nand flash相比,雖然空間小了點,但是勝在穩(wěn)定,這是很多工業(yè)場景所必須

    2024年02月16日
    瀏覽(32)
  • (三)內(nèi)核移植--從零開始自制linux掌上電腦(F1C200S)<嵌入式項目>

    (三)內(nèi)核移植--從零開始自制linux掌上電腦(F1C200S)<嵌入式項目>

    目錄 一、bootloader、kernel、rootfs聯(lián)系 二、內(nèi)核移植 1. 內(nèi)核源碼獲取 2. 內(nèi)核配置與編譯 ?? 基礎配置與編譯 ?? TF卡分區(qū) ?? 內(nèi)核燒錄 三、參考內(nèi)容 kernel可以理解為一個 龐大的裸機程序 ,和uboot以及其他比如點燈類似的裸機程序沒有本質(zhì)區(qū)別,只是kernel分為 用戶態(tài)和內(nèi)核態(tài)

    2024年02月15日
    瀏覽(92)
  • 稚暉君又整活啦,基于全志F1C200s的超迷你&低成本開發(fā)板開源

    稚暉君又整活啦,基于全志F1C200s的超迷你&低成本開發(fā)板開源

    B站最強小電視(基于全志H3) 鋼鐵俠機械臂 曾經(jīng)靠著“B站最強小電視”以及號稱“鋼鐵俠機械臂”等硬核產(chǎn)品出圈的稚暉君又雙叒叕來整活啦! 這次稚暉君開源了基于全志F1C200s的一個超迷你低成本的Linux開發(fā)板,項目名為Planck Pi,F(xiàn)1C200s采用的ARM9架構,SIP內(nèi)置DDR的極簡封裝

    2024年02月09日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包