国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

國產軟硬件龍芯系列迅為2K1000開發板配置 nand flash

北京迅為電子 ? 2022-04-12 14:10 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

開發板使用手冊 讓研發速度快上加快

更新包含了開發環境搭建、系統編譯與燒寫和pmon基礎知識、啟動流程分析、網絡加載系統、燒寫系統到nand以及新增pmon移植教程、新增pmon下操作GPIO章節和pmon下Ejtag使用章節等。

pmon 支持倆種接口類型的 nand flash,一個是 nand 控制器接口,一個是 spi 接口。龍芯核心板上板載了一個 nand 控制器接口的 flash。

9.9.11.1 配置 pmon

首先我們需要在 pmon 里面添加對 nand 的支持,那么我們都要配置哪些內容呢?這個要從 pmon 的啟動流程入手,pmon 在啟動的時候是在 Targets/LS2K/ls2k/tgt_machdep.c 里調用 ls2k_nand_init()函數對 nand 進行初始化的, 如果我們要調用 ls2k_nand_init()函數,就需要定義宏定義 NNADN 和 CONFIG_LS2K_NAND, 其中 NNADN 的值在 Targets/LS2K/compile/ls2k/m25p80.h 中定義為 1,

所以我們只需要在 Targets/LS2K/conf/ls2k 文件中添加代碼 option CONFIG_LS2K_NAND 即可,這里我們添 加到第 269 行,

在 pmon 默認的 bsp 中,默認添加了代碼 select nand,所以這里我們不必要在添加代碼 select nand,而select 指定的是后面的參數 nand 被選中,選中了 nand 參數以后,在 conf/files 文件中使用 file 指定的 c 文件就可以被編譯到 pmon 里面。因為 file 指定的文件編譯與否取決于后面的參數有沒有被選中,needs-flag 表示為該文件生成頭文件。

然我們回過頭再來看條件編譯的這部分代碼,

如果我們定義了 NNAND 和 CONFIG_LS2K_NAND,就是執行*(volatile int *)0xbfe10420 |= (1<<9) 代碼將GPIO 的管教復用設置為 NAND,,如果沒用定義這倆個宏定義,就將復用關系設置為 GPIO,如下圖所示:

如果定義了這倆個宏定義,接著就會調用 ls2k_nand_init 函數來初始化 nand,我們跳轉到 ls2k_nand_init 函數定義的 sys/dev/nand/ls2k-nand.c 驅動文件,通過閱讀代碼我們可以找到對 mtd 結構初始化的驅動函數為 ls2k_nand_init_mtd,通過訪問 mtd 就可以訪問 nand 控制器,

在 ls2k_nand_init_mtd 函數中,最關鍵的是對 ECC 的選擇,在 pmon 中默認的 ECC 有 NAND_ECC_SOFT 和 NAND_ECC_SOFT_BCH 倆種。BCH 校驗比 ECC 校驗有更強的糾錯能力,龍芯 BSP 里面默認使用的是 ECC 校驗,代碼如下:

如果我們需要使用 BCH 校驗,需要在在 Targets/LS2K/conf/ls2k 中定義 select nand_bch,,這個我們選擇 BCH 校驗,如下圖所示:

9.9.11.2 配置分區

在 nand 初始化最后的步驟會建立分區信息,建立分區信息的邏輯是先會調用 nand_flash_add_parts 函

數對環境變量 mtdparts 進行判斷,mtdparts 環境變量在 Targets/LS2K/include/pmon_target.h 中定義,

如 果 環 境 變 量 mtdparts 中 設 置 了 分 區 信 息 , 則 調 用 add_mtd_device 來 指 定 分 區 , sys/dev/nand/ls2k-nand.c 中代碼如下:

環境變量 mtdparts 中的值我們要怎么設置呢?

這里環境變量的設置我們要和 pmon 里面設備樹的保持一致,打開 Targets/LS2K/conf/LS2K.dts 設備樹文件,找到 nand 節點,其中 nand 節點的子 partition 節點表示的是分區信息,如下圖所示:

其中:

compatible = "loongson,ls-nand"; 表示匹配驅動所使用的屬性。

reg = <0x1fe06040 0x0 0x1fe06000 0x20>; 表示控制寄存器的地址和長度,其中 0x1fe06040 是

NAND_DMA_ADDR_REG 的地址。 地址 0x1fe06000 是 NAND_CMD 的地址。長度均為 0x20。

interrupt-parent = <&icu>; 中斷控制器是 icu

interrupts = <52>; 分配中斷號為 52

interrupt-names = "nand_irq"; 中斷名稱

dmas = <&dma0 1>; 表示使用 dma0 控制器,通道數為 1

dma-names = "nand_rw"; dma 控制器名稱

dma-mask = <0xffffffff 0xffffffff>; 表示設備 dma 能力,如果設備只有 32 位 dma 能力,則應該配置成

0x00xffffffff,如果設備有 64 位 dma 能力,則應該配置成 0xffffffff 0xffffffff

number-of-parts = <0x2>; 表示分區數量,這里設置成倆個分區

partition@0 {

label = "kernel_partition";

reg = <0x0000000 0x01e00000>;

};

分區 0,分區名稱為 kernel_partition,其中分區起始地址為 0x0000000,分區長度為 0x01e00000。

partition@0x01400000 {

label = "os_partition";

reg = <0x01e00000 0x0>;

};

分區 1,分區名稱為 os_partition,其中分區起始地址為 0x01e00000,分區長度為剩余所有空間。

這里我們需要修改 partition@0 和 partition@0x01400000 子節點。這里我們把內核的分區大小設置 成 30M,剩余的 482M 給文件系統。

接著我們需要添加片選信息。一般情況下根據硬件設計規范,Flash 的片選會接到 cs0 上,通過原理圖我們可以確定,片選引腳連接到了 cs0 上,如下圖所示:

但是設備樹我們要怎么寫呢?這個就需要我們去看驅動源碼了,我們打開內核源碼

drivers/mtd/nand/ls-nand.c 下的 nand 控制器的驅動,在第 637 行我們可以看到他是通過 nand-cs 來獲取的片選信息,

所以我們在設備樹中添加屬性 nand-cs=<0x00>;,添加完成如下圖所示:

這樣,pmon 下的設備樹我們就設置好了,然后我們回過頭在來設置環境變量 mtdparts,要與設備樹中我們設置的保持一致,修改完成如下圖所示:

這樣 pmon 對 nand 的設置就已經完成了。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 龍芯
    +關注

    關注

    3

    文章

    428

    瀏覽量

    32768
  • 開發板
    +關注

    關注

    26

    文章

    6289

    瀏覽量

    118048
  • 國產芯片
    +關注

    關注

    2

    文章

    386

    瀏覽量

    31724
  • 2K1000
    +關注

    關注

    0

    文章

    21

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    性能猛獸再進化!iTOP-3588開發板新增LPDDR5商業級16G+64G旗艦配置

    性能猛獸再進化!iTOP-3588開發板新增LPDDR5商業級16G+64G旗艦配置
    的頭像 發表于 02-26 15:03 ?444次閱讀
    性能猛獸再進化!<b class='flag-5'>迅</b><b class='flag-5'>為</b>iTOP-3588<b class='flag-5'>開發板</b>新增LPDDR5商業級16G+64G旗艦<b class='flag-5'>配置</b>!

    iTOP-Hi3403開發板:解鎖多目拼接相機的10.4TOPS強“芯”動力,開啟4K智能視覺新紀元

    iTOP-Hi3403開發板:解鎖多目拼接相機的10.4TOPS強“芯”動力,開啟4K智能視覺新紀元
    的頭像 發表于 01-29 11:05 ?922次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b>iTOP-Hi3403<b class='flag-5'>開發板</b>:解鎖多目拼接相機的10.4TOPS強“芯”動力,開啟4<b class='flag-5'>K</b>智能視覺新紀元

    RK3588開發板Android系統燒寫及注意事項

    RK3588開發板Android系統燒寫及注意事項
    的頭像 發表于 12-03 15:17 ?7162次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b>RK3588<b class='flag-5'>開發板</b>Android系統燒寫及注意事項

    iTOP-3568開發板?Linux驅動開發實戰:menuconfig圖形化配置實驗

    iTOP-3568開發板?Linux驅動開發實戰:menuconfig圖形化配置實驗
    的頭像 發表于 11-24 15:29 ?766次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b>iTOP-3568<b class='flag-5'>開發板</b>?Linux驅動<b class='flag-5'>開發</b>實戰:menuconfig圖形化<b class='flag-5'>配置</b>實驗

    3568開發板從零學習Linux驅動開發一站式資料包如何讓我效率翻倍

    3568開發板從零學習Linux驅動開發一站式資料包如何讓我效率翻倍
    的頭像 發表于 11-05 11:16 ?400次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b>3568<b class='flag-5'>開發板</b>從零學習Linux驅動<b class='flag-5'>開發</b>:<b class='flag-5'>迅</b><b class='flag-5'>為</b>一站式資料包如何讓我效率翻倍

    iTOP-RK3576開發板再升級全新金屬外殼

    iTOP-RK3576開發板再升級全新金屬外殼
    的頭像 發表于 10-22 15:48 ?1218次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b>iTOP-RK3576<b class='flag-5'>開發板</b>再升級全新金屬外殼

    RK3568開發板模型推理測試實戰LPRNet?車牌識別

    RK3568開發板模型推理測試實戰LPRNet 車牌識別
    的頭像 發表于 08-25 14:55 ?1309次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b>RK3568<b class='flag-5'>開發板</b>模型推理測試實戰LPRNet?車牌識別

    RK3562開發板 Ubuntu系統功能測試

    RK3562開發板 Ubuntu系統功能測試
    的頭像 發表于 07-10 13:46 ?1311次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b>RK3562<b class='flag-5'>開發板</b> Ubuntu系統功能測試

    龍軟件受邀參加2025龍芯產品發布暨用戶大會,發布基于龍芯2K3000的OrangePi Nova

    /3C6000等新品的發布。作為龍芯合作伙伴,龍軟件受邀參加此次大會,并在會上發布基于龍芯2K3000的新一代國產AI
    的頭像 發表于 06-26 17:01 ?1868次閱讀
    <b class='flag-5'>迅</b>龍軟件受邀參加2025<b class='flag-5'>龍芯</b>產品發布暨用戶大會,發布基于<b class='flag-5'>龍芯</b><b class='flag-5'>2K</b>3000的OrangePi Nova

    RK3576開發板NPUrknn-toolkit2環境搭建和使用docker環境安裝

    RK3576開發板NPUrknn-toolkit2環境搭建和使用docker環境安裝
    的頭像 發表于 06-18 15:22 ?1273次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b>RK3576<b class='flag-5'>開發板</b>NPUrknn-toolkit<b class='flag-5'>2</b>環境搭建和使用docker環境安裝

    RK3576開發板NPU例程測試-rknn-toolkit2環境搭建和使用

    RK3576開發板NPU例程測試-rknn-toolkit2環境搭建和使用
    的頭像 發表于 06-17 13:46 ?1723次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b>RK3576<b class='flag-5'>開發板</b>NPU例程測試-rknn-toolkit<b class='flag-5'>2</b>環境搭建和使用

    RK3562開發板Buildroot系統功能測試

    RK3562開發板Buildroot系統功能測試
    的頭像 發表于 06-13 13:46 ?2072次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b>RK3562<b class='flag-5'>開發板</b>Buildroot系統功能測試

    龍芯2K0300開發板軟件資料-新世界更新

    【資料更新】正點原子龍芯2K0300開發板資料更新! 龍芯2K0300開發板軟件資料-新世界更新
    發表于 04-22 14:16

    【北京】iTOP-RK3568開發板鴻蒙OpenHarmony系統南向驅動開發實操-HDF驅動配置UART

    【北京】iTOP-RK3568開發板鴻蒙OpenHarmony系統南向驅動開發實操-HDF驅動配置UART
    的頭像 發表于 03-25 11:02 ?1725次閱讀
    【北京<b class='flag-5'>迅</b><b class='flag-5'>為</b>】iTOP-RK3568<b class='flag-5'>開發板</b>鴻蒙OpenHarmony系統南向驅動<b class='flag-5'>開發</b>實操-HDF驅動<b class='flag-5'>配置</b>UART

    北京iTOP-RK3568開發板OpenHarmony系統南向驅動開發實操-HDF驅動配置LED

    北京iTOP-RK3568開發板OpenHarmony系統南向驅動開發實操-HDF驅動配置LED
    的頭像 發表于 03-14 14:41 ?1346次閱讀
    北京<b class='flag-5'>迅</b><b class='flag-5'>為</b>iTOP-RK3568<b class='flag-5'>開發板</b>OpenHarmony系統南向驅動<b class='flag-5'>開發</b>實操-HDF驅動<b class='flag-5'>配置</b>LED