娇小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

0

推薦閱讀

2017年剛剛過去,在這一年里手機市場雖然看上去波瀾不大,但也有起落沉浮。尤其是市場趨于平靜之后,如果手機廠商想要打動消費者就需要加倍努力才行。在2017年下半年,市場上出現了很多新的流行元素,比如面部識別、比如18:9屏幕,連之前一度銷聲匿跡的屏幕下指紋也蠢蠢欲動。  那么在已經開始的2018年,手機又能發展成什么樣呢?有那些技術可以成為手機...
恒玄科技高度集成的音頻SoC結合了有源噪聲消除技術與藍牙雙模功能適用于高端聽筒、耳機、揚聲器和音箱 CEVA,全球領先的智能和互聯設備信號處理平臺和人工智能處理器IP授權許可廠商 宣布,業界領先的高級音頻平臺SoC設計商和供應商恒玄科技(Bestechnic)已經獲得授權許可,在用于高端聽筒和耳機的最新解決方案中部署使用 CEVA的RivieraWaves藍牙IP。這款高...
鋰離子電池技術方面一直是全球研發人員都想突破的一個方面,但是由于物理和化學的限制暫時還未找到相關的材料能夠使電池的電量得到很大的提升。但是人們一直也沒有放棄對于鋰離子技術的研發,就在前不久據外媒透露,英國Nexeon公司獲得三套關鍵性專利,是鋰離子電池的負極的硅材料,這是在收購了Litarion GmbH公司之后所獲得的。這個專利一共有24項,這其...
一、介紹 九鼎的S5PV210開發板,在出廠前已經默認刷了Android4.0系統。如果需要刷其它的系統或者是由于系統問題無法啟動時,就需要對板子刷機。 其實,刷機是對210開發板的一個基礎學習,目的是實踐之前學過的系統啟動過程,進一步的了解系統的啟動過程,加深理解(uboot、kernel、rom)。二、準備工作(1)工作平臺:WIN8.1(2)驅動工具:...

史海拾趣

問答坊 | AI 解惑

多路輸出開關電源的設計及應用原則

對現代電子系統,即便是最簡單的由單片機和單一I/O 接口電路所組成的電子系統來講,其電源電壓一般也要由+5V,±15V或±12V等多路組成,而對較復雜的電子系統來講,實際用到的電源電壓就更多了。 目前主要由下述諸多電壓組合而成:+3.3V,+5V, ...…

查看全部問答∨

如何用短信貓接收狀態報告???

在網上找了很久,發現都不可用,我是移動的貓, 在執行SIM卡的STK菜單發送短信后,希望能接收到移動的狀態報告。 at+cnmi=1,1,0,1,1 at+cnmi=2,1,0,1,1 這兩個都不行嗎,在發完短信后,用它們去檢測設備是否接收到狀態報告,可什么也沒接到? ...…

查看全部問答∨

求教vxworks驅動開發的編程思想..

求教vxworks驅動開發的編程思想----塊設備,比如硬盤。…

查看全部問答∨

嵌入式Linux操作系統學習規劃--中嵌學院

嵌入式Linux操作系統學習規劃 ARM+LINUX路線,主攻嵌入式Linux操作系統及其上應用軟件開發目標: (1) 掌握主流嵌入式微處理器的結構與原理(初步定為arm9) (2) 必須掌握一個嵌入式操作系統 (初步定為uclinux或linux,版本待定) (3 ...…

查看全部問答∨

要求面試驅動開發了,應該注意寫什么?

要求面試驅動開發了,應該注意寫什么?…

查看全部問答∨

請問如何混沌序列被量化為二進制序列的那個量化函數的定義是什么?要詳細的,講的盡量清楚些,謝謝高手專家了!!!

請問如何混沌序列被量化為二進制序列的那個量化函數的定義是什么?要詳細的,講的盡量清楚些,謝謝高手專家了!!!…

查看全部問答∨

急!!Wince新建工程時遇到的問題

我安裝好了SDK,在wince下新建了一個工程名之后,點擊build項下的set active platform  之后就出現死機, 不知道是什么原因,我已經重裝過evc了,還是這樣,我用的是wince4.2  evc4.0,我的那個步驟都是按照給好的文檔來的,步 ...…

查看全部問答∨

PICC編譯出錯

編譯出錯 Build C:\\KEY  ICD2\\icd2 for device 18F4520Using driver C:\\Program Files\\HI-TECH Software\\PICC-18\\PRO\\9.63\\bin\\picc18.exe Make: The target "C:\\KEY  ICD2\\KEY  LCD2.p1" is up to date.Executing: "C ...…

查看全部問答∨

如何把PWM輸出的3.3V轉化成5V?

由于驅動模塊需要5V才能夠驅動,如何把PWM輸出的3.3V轉化成5V?…

查看全部問答∨

不明白出D題的所謂磚家是否被磚拍了

本帖最后由 paulhyde 于 2014-9-15 03:58 編輯 3.6V 不說 還100ma 還不說 還15M 明擺著用拼學校老師的實力嗎  …

查看全部問答∨
小廣播
添点儿料...
无论热点新闻、行业分析、技术干货……
設計資源 培訓 開發板 精華推薦

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

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

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 苗栗县| 五莲县| 屯昌县| 夏邑县| 宁晋县| 马山县| 罗江县| 五华县| 博客| 德安县| 松阳县| 甘肃省| 阜阳市| 德江县| 方正县| 湄潭县| 嘉峪关市| 鄱阳县| 乐至县| 临西县| 镇赉县| 内乡县| 乐业县| 延长县| 柳林县| 太仓市| 湛江市| 紫金县| 昭平县| 宜黄县| 金华市| 邹平县| 商城县| 休宁县| 石家庄市| 丹阳市| 正定县| 瓦房店市| 郓城县| 徐汇区| 栾城县|