娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年01月04日(星期六)

2021年01月04日 | 移植u-boot-2016.11到TQ2440開發板全過程記錄

發布者:誰與爭鋒1 來源: eefocus關鍵字:移植  11  TQ2440開發板 手機看文章 掃描二維碼
隨時隨地手機看文章
  • 移植前的準備

  1. 獲取并解壓源碼

SAMSUNG公司于2017年初停止了對S3C2410系列CPU的官方u-boot支持(可在最新版u-boot源碼中打開doc/README.scrapyard,搜索關鍵字S3C2440查看相關說明)。從http://ftp.denx.de/pub/u-boot/下載支持S3C2410處理器的最后一版官方u-boot源碼u-boot-2016.11.tar.bz2,放到宿主機的/opt/u-boot/下。

解壓源代碼并進入根目錄:

tar jxvf u-boot-2016.11.tar.bz2

cd u-boot-2016.11/

  1. 指定交叉編譯器

gedit Makefile

找到:

# set default to nothing for native builds

ifeq ($(HOSTARCH),$(ARCH))

CROSS_COMPILE ?=

endif

在下方新插入一行:

CROSS_COMPILE ?=arm-linux-

  1. 創建板卡支持文件

(1)創建板卡支持文件夾

拷貝官方smdk2410文件夾進行修改:

cp -rf board/samsung/smdk2410/ board/samsung/tq2440

(2)修改板卡硬件初始化文件

gedit board/samsung/tq2440/lowlevel_init.S

修改s3c2410.S為tq2440.S,修改SMDK2410為TQ2440。

(3)修改板卡高級初始化文件

重命名該文件夾下的smdk2410.c為tq2440.c:

mv board/samsung/tq2440/smdk2410.c board/samsung/tq2440/tq2440.c

編輯該文件:

gedit board/samsung/tq2440/tq2440.c

替換所有SMDK2410為TQ2440,并添加編譯選項。

gedit board/samsung/tq2440/Makefile

修改smdk2410.o為tq2440.o

(4)修改板卡配置文件

編輯該文件:

gedit board/samsung/tq2440/Kconfig

內容為:

if TARGET_TQ2440

 

config SYS_BOARD

       default "tq2440"

 

config SYS_VENDOR

       default "samsung"

 

config SYS_SOC

       default "s3c24x0"

 

config SYS_CONFIG_NAME

       default "tq2440"

 

endif

(5)添加板卡支持文件信息

gedit arch/arm/Kconfig

找到

config TARGET_SMDK2410

       bool "Support smdk2410"

       select CPU_ARM920T

在下方插入:

config TARGET_TQ2440

       bool "Support tq2440"

       select CPU_ARM920T

找到:

source "board/samsung/smdk2410/Kconfig"

在下方插入:

source "board/samsung/tq2440/Kconfig"

(6)修改板卡支持維護信息

gedit board/samsung/tq2440/MAINTAINERS

修改內容為:

TQ2440 BOARD

M:   Lion <41979748@qq.com>

S:    Maintained

F:    board/samsung/tq2440/

F:    include/configs/tq2440.h

F:    configs/tq2440_defconfig

(7)添加板卡識別信息

gedit arch/arm/include/asm/mach-types.h

找到:

#define MACH_TYPE_SMDK2410             193

在下方插入:

#define MACH_TYPE_TQ2440          168

找到:

#ifdef CONFIG_ARCH_SMDK2410

# ifdef machine_arch_type

#  undef machine_arch_type

#  define machine_arch_type __machine_arch_type

# else

#  define machine_arch_type MACH_TYPE_SMDK2410

# endif

# define machine_is_smdk2410()   (machine_arch_type == MACH_TYPE_SMDK2410)

#else

# define machine_is_smdk2410()   (0)

#endif

在下面插入一段:

#ifdef CONFIG_ARCH_TQ2440

# ifdef machine_arch_type

#  undef machine_arch_type

#  define machine_arch_type __machine_arch_type

# else

#  define machine_arch_type MACH_TYPE_TQ2440

# endif

# define machine_is_tq2440()  (machine_arch_type == MACH_TYPE_TQ2440)

#else

# define machine_is_tq2440()  (0)

#endif

  1. 創建板卡配置頭文件

cp include/configs/smdk2410.h include/configs/tq2440.h

編輯該文件:

gedit include/configs/tq2440.h

替換S3C2410為S3C2440,替換SMDK2410為TQ2440

  1. 創建NAND Flash驅動文件

cp drivers/mtd/nand/s3c2410_nand.c drivers/mtd/nand/s3c2440_nand.c

      編輯該文件:

gedit drivers/mtd/nand/s3c2440_nand.c

      添加編譯選項:

gedit drivers/mtd/nand/Makefile

找到:

obj-$(CONFIG_NAND_S3C2410) += s3c2410_nand.o

在下方插入一行:

obj-$(CONFIG_NAND_S3C2440) += s3c2440_nand.o

  1. 創建默認編譯配置文件

創建tq2440開發板默認配置文件:

cp configs/smdk2410_defconfig configs/tq2440_defconfig

編輯該文件:

gedit configs/tq2440_defconfig

修改開發板目標:

替換CONFIG_TARGET_SMDK2410=y為CONFIG_TARGET_TQ2440=y;

修改命令行前綴:

替換CONFIG_SYS_PROMPT="SMDK2410 # "為CONFIG_SYS_PROMPT="TQ2440 # ";

  1. 測試編譯環境

(1)清理環境并重新編譯

make distclean

make tq2440_defconfig

make

編譯失敗,并提示” Not enough room for program headers, try linking with -N”錯誤:

錯誤信息:

arm-linux-ld.bfd: u-boot: Not enough room for program headers, try linking with -N

arm-linux-ld.bfd: final link failed: Bad value

Makefile:1209: recipe for target 'u-boot' failed

make: *** [u-boot] Error 1

(2)根據網上資料,修改頂層配置文件:

gedit Makefile

找到:

LDFLAGS_u-boot += $(LDFLAGS_FINAL)

在下面插入:

# Avoid 'Not enough room for program headers' error on binutils 2.28 onwards

LDFLAGS_u-boot += $(call ld-option, --no-dynamic-linker)

(3)重新編譯

make

在根目錄下生成了u-boot.bin文件,但提示“Error: You must add new CONFIG options using Kconfig”錯誤

錯誤信息:

Error: You must add new CONFIG options using Kconfig

The following new ad-hoc CONFIG options were detected:

CONFIG_NAND_S3C2440

CONFIG_SYS_S3C2440_NAND_HWECC

CONFIG_TQ2440

 

Please add these via Kconfig instead. Find a suitable Kconfig

file and add a 'config' or 'menuconfig' option.

Makefile:827: recipe for target 'all' failed

make: *** [all] Error 1

這一個錯誤產生的原因是修改了配置頭文件中的默認宏定義而導致配置檢查無法通過,如果根據消息提示手工在whitelist.txt文件中添加相應宏,由于不知道whitelist.txt文件中的排序規則,仍舊可能報錯。

(4)解決白名單校驗不通過問題

根據網上資料來看,目前切實有效的解決辦法是關閉該校驗功能。

gedit Makefile

找到:

       $(srctree)/scripts/check-config.sh u-boot.cfg

              $(srctree)/scripts/config_whitelist.txt ${srctree} 1>&2

在開頭位置使用#屏蔽這兩行:

#     $(srctree)/scripts/check-config.sh u-boot.cfg

#            $(srctree)/scripts/config_whitelist.txt ${srctree} 1>&2

  1. 創建自動編譯批處理腳本

(1)編寫自動編譯腳本

gedit auto_build.sh

添加如下內容:

#!/bin/bash 

echo "Clean Configuration File..." 

make distclean 

echo "Clean Obj..." 

make clean 

echo "Load Configuration File..." 

make tq2440_defconfig 

echo "make..." 

make CROSS_COMPILE=arm-linux-

echo "Copy bins to TFTP Folder...."

cp /opt/u-boot/u-boot-2016.11/u-boot.bin /opt/TFTP/u-boot.bin

cp /opt/u-boot/u-boot-2016.11/spl/u-boot-spl.bin /opt/TFTP/u-boot-spl.bin

(2)為自動編譯腳本文件添加執行權限

sudo chmod +X auto_build.sh

(3)修改自動編譯腳本文件所有者

sudo chown -R tq2440:root /opt/u-boot/u-boot-2016.11/auto_build.sh

(4)執行自動編譯腳本

bash ./auto_build.sh

編譯成功:

  1. 小結

至此,我們完成了u-boot-2016.11移植到TQ2440開發板的前期準備工作。

  • 修改芯片初始化代碼

  1. 修改屏蔽中斷代碼

gedit arch/arm/cpu/arm920t/start.S

找到:

# if defined(CONFIG_S3C2410)

       ldr   r1, =0x3ff

       ldr   r0, =INTSUBMSK

       str   r1, [r0]

# endif

在下面為S3C2440芯片添加:

# if defined(CONFIG_S3C2440)

       ldr   r1, =0x7ff

       ldr   r0, =INTSUBMSK

       str   r1, [r0]

# endif

  1. 修改時鐘初始化代碼

(1)修改芯片時鐘初始化代碼

gedit arch/arm/cpu/arm920t/start.S

找到:

       /* FCLK:HCLK:PCLK = 1:2:4 */

       /* default FCLK is 120 MHz ! */

       ldr   r0, =CLKDIVN

       mov       r1, #3

       str   r1, [r0]

替換為:

#if defined(CONFIG_S3C2440)

#define CLK_CTL_BASE      0x4C000000

#define MDIV_405   0x7f<<12

#define PSDIV_405  0x21

       /* FCLK:HCLK:PCLK = 1:4:8 */

       /* default FCLK is 405 MHz ! */

       ldr   r0, =CLKDIVN

       mov       r1, #5

       str   r1, [r0]

       /* set asynchronous bus mod */

       mrc p15, 0, r1, c1, c0, 0

       orr   r1, r1, #0xc0000000  

       mcr p15, 0, r1, c1, c0, 0

       /* MPLL is 405 MHz ! */

       mov       r1, #CLK_CTL_BASE

       mov       r2, #MDIV_405

       add r2, r2, #PSDIV_405

       str   r2, [r1, #0x04]

#else

       /* FCLK:HCLK:PCLK = 1:2:4 */

       /* default FCLK is 120 MHz ! */

       ldr   r0, =CLKDIVN

       mov       r1, #3

       str   r1, [r0]

#endif    /* CONFIG_S3C2440 */

(2)修改板卡時鐘初始化代碼

gedit board/samsung/tq2440/tq2440.c

添加一個新的FCLK配置模式,找到:

#define FCLK_SPEED 1

修改為:

#if !defined(CONFIG_S3C2440)

#define FCLK_SPEED 1

#else

#define FCLK_SPEED 2

#endif /* CONFIG_S3C2440 */

找到對應的配置項:

#if (FCLK_SPEED == 0)        /* Fout = 203MHz, Fin = 12MHz for Audio */

#define M_MDIV      0xC3

#define M_PDIV 0x4

#define M_SDIV 0x1

#elif (FCLK_SPEED == 1)            /* Fout = 202.8MHz */

#define M_MDIV      0xA1

#define M_PDIV 0x3

#define M_SDIV 0x1

#endif

添加配置模式為2的分支選項:

#if (FCLK_SPEED == 0)        /* Fout = 203MHz, Fin = 12MHz for Audio */

#define M_MDIV      0xC3

#define M_PDIV 0x4

#define M_SDIV 0x1

#elif (FCLK_SPEED == 1)            /* Fout = 202.8MHz */

#define M_MDIV      0xA1

#define M_PDIV 0x3

#define M_SDIV 0x1

#elif (FCLK_SPEED == 2)            /* Fout = 405Hz */

#define M_MDIV      0x7f

#define M_PDIV 0x2

#define M_SDIV 0x1

#endif

添加一個新的UCLK配置模式,找到:

#define USB_CLOCK 1

替換為:

#if !defined(CONFIG_S3C2440)

#define USB_CLOCK 1

#else

#define USB_CLOCK 2

#endif /* CONFIG_S3C2440 */

找到對應的配置項:

#if (USB_CLOCK == 0)

#define U_M_MDIV 0xA1

#define U_M_PDIV  0x3

#define U_M_SDIV  0x1

#elif (USB_CLOCK == 1)

#define U_M_MDIV 0x48

#define U_M_PDIV  0x3

#define U_M_SDIV  0x2

#endif

添加配置模式為2的分支選項:

#if (USB_CLOCK == 0)

#define U_M_MDIV 0xA1

[1] [2] [3] [4] [5] [6] [7]
關鍵字:移植  11  TQ2440開發板 引用地址:移植u-boot-2016.11到TQ2440開發板全過程記錄

上一篇:S5PV210開發板刷機(SD卡uboot、串口+USB-OTG刷機方法)
下一篇:Ubuntu11.10使用TFTP協議傳輸文件到TQ210開發板學習筆記-1

推薦閱讀

蘋果昨天更新了投資者關系頁面,同時宣布將于2018年2月1日舉行2018 Q1 財政季度的財報。這次財報將可以讓我們首次了解 iPhone X ,以及 iPhone 8 和 iPhone 8 Plus的銷量。iPhone X 在2017年11月3日正式發售,所以在蘋果2017 Q4 財報中,并沒有 iPhone X 的銷售數據。蘋果給出的 2018 Q1 預測為 營收 840-870 億美元,毛利潤為 3...
集微網消息(文/科技瞄)雄安新區自設立以來一直是大家關注的重點,雄安新區的5G如何規劃就像是一個風向標一樣,引得人們紛紛駐足。近日,河北雄安新區管委會主任陳剛在一檔節目中表示,雄安新區會率先大規模商用5G,率先布局IPv6。陳剛表示,未來雄安新區將搭建國家新一代人工智能開放創新平臺,重點實現無人系統智能技術的突破,建設開放式智能網聯車示...
近年來,鋰離子電池的應用取得了突飛猛進的發展,上天下海無所不能。尤其是在電動汽車和小型電網儲能等方面的應用成績斐然。但隨著應用的范圍越廣,人們對其能量密度、循環性能和倍率性能等方面的要求也越來越高。在鋰電池內部結構中,影響它性能提升的因素有很多,正負極材料、隔膜和電解液這四大材料尤為關鍵。其中,鋰離子電池的正極材料是限制其能量密...
外媒報道,臺積電和三星在 3nm 工藝技術的開發中遇到了不同卻關鍵的瓶頸。 因此,臺積電和三星將不得不推遲 3nm 工藝技術的開發進度。不過,臺積電依然計劃,今年 3nm 工藝將完成試生產,并預計 2022 年批量投入生產。三星采用的是“GAAFET”架構,業內人士認為它可以更精確控制跨通道的電流,并有效縮小芯片面積以降低功耗。而臺積電使用的是更...

史海拾趣

問答坊 | AI 解惑

求助單片機制作萬年歷!!!!!!

編寫程序記錄分、時,同時把時、分、秒的顯示信息全部顯示在七段數碼管上;編寫程序能夠處理按鍵,要求識別出不同的按鍵以便采取進一步的處理措施;編寫程序能夠記錄年、月、日;通過按鍵能夠分別顯示年、月、日和時、分、秒要求能夠用按鍵初始化當 ...…

查看全部問答∨

發現這里面討論飛思卡爾的蠻多的,不知道它的芯片價格怎么樣,開發工具和性能如何

我還沒有用過它的芯片,哪位介紹一下,MCU,ARM,DSP等,感覺這幾年飛思卡爾在中國推得也比較多…

查看全部問答∨

arm9 中斷處理程序

rSRCPND=(1<<8)        ;         rINTPND=(1<<8); pISR_TICK=(int)isr_tick; rRTCCON=1<<0; rINTMOD=0; rTICNT=(127<<0)+(1<<7); rINTMSK=~BIT_TICK;//+(0<<30); 高手幫 ...…

查看全部問答∨

求助:磁盤上的文件系統結構已損壞,不能使用

電腦經常會出現這種情況,磁盤上的文件系統結構已損壞,不能使用。 請在卷 C: 上運 行 chkdsk 實用程序。然后運行 chkdsk 又經常死機,一強行重啟就進不了系統了,只 能重裝了,這種情況經常出想,不知道有人能給些好的建議嗎? …

查看全部問答∨

請教版主,關于fsmc功能地址復用功能的疑惑

版主你好,請問fsmc功能的地址總線復用是不是就對nor而言的,那個8位數據寬度設置是不是對nor是無效的,只能是16位或者32位。復用的時候模式是不是選擇D模式…

查看全部問答∨

郁悶啊,剛想買那個55美金的DSP板,打開頁面一看,悲劇了。。。。

板子賣完了。。。。       很奇怪的是,下面又有說551 units available......…

查看全部問答∨

驚艷網友!宅男10天自制“iPad”

花費800元,感動女友,驚艷網友都說大學畢業是校園愛情的一道坎,很多戀人由于畢業分隔兩地,不能見面就很容易分手。最近有一個大四學生為避免這個愛情魔咒,專門為女友自制了一臺平板電腦,可以每天視頻聊天。女友曬出這臺電腦的照片,引來了無數 ...…

查看全部問答∨

關于lwip的網絡數據發送與接收 STM32F107

用STM32F107+ DM9161AEP  做一個基于LWip的數據接收與發送  要用到哪些知識啊 ? 為什么我用了神舟四號的例程,在主函數里面聲明了  api.h    卻不能用里面的函數呢? 還有有沒有流程圖說說   ...…

查看全部問答∨

又學習了一遍C2000的視頻,每次都有新收獲啊!

上次看了一遍,答題剛過! 感覺不是很滿意! 又找資料好好看了一遍,答了題!看能不能拿個滿分!…

查看全部問答∨

在繪制PCB過程中,有的元器件看不到的處理方法

在繪制PCB過程中,有的元器件看不到怎么辦?     在繪制PCB板過程中,有些元器件可能因為起初擺放位置時考慮不周,導致后來部分元器件超出視圖范圍不能夠在PCB圖中看到。我們可以將元器件全部選中,然后將全部元器件一次移動或進行 ...…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 翼城县| 阳曲县| 蕉岭县| 肥西县| 西昌市| 白银市| 潍坊市| 大冶市| 德令哈市| 连山| 甘肃省| 成安县| 靖安县| 建宁县| 渝北区| 宣威市| 盐山县| 贵溪市| 彭阳县| 广州市| 高州市| 阜南县| 营山县| 屏山县| 安福县| 阿瓦提县| 镇雄县| 新和县| 麻江县| 璧山县| 卢湾区| 军事| 安龙县| 屏东县| 临邑县| 乳源| 溆浦县| 崇明县| 合水县| 寿宁县| 宽城|