关键词:
开发环境:win10 64位 + VMware12 + Ubuntu14.04 32位
工具链:linaro提供的gcc-linaro-6.1.1-2016.08-x86_64_arm-linux-gnueabi
要移植的u-boot版本:u-boot-2016-11
Tiny4412开发板硬件版本为:
底板: Tiny4412SDK 1312B
核心板:Tiny4412 - 1306
1,原理图
查看tiny4412SDK-1312B -Schematic.pdf
可看出,底板使用UART0作为外接串口
2、uart0初始化步骤
- 选择UART的时钟源
- 将所涉及的UART通道管脚设为UART功能
- 设置波特率:UBRDIVn寄存器(UART BAUD RATE DIVISOR)、UFRACVALn寄存器
- 设置传输格式:ULCONn寄存器(UART LINE CONTROL)
- 设置UART工作模式:UCONn寄存器(UART CONTROL)
- UFCONn寄存器(UART FIFO CONTROL)、UFSTATn寄存器(UART FIFO STATUS)
3、使用Tiny4412 Debug 串口uart0代码设置
diff --git a/arch/arm/dts/exynos4412-tiny4412.dts b/arch/arm/dts/exynos4412-tiny index 4810202..3e057dc 100644 --- a/arch/arm/dts/exynos4412-tiny4412.dts +++ b/arch/arm/dts/exynos4412-tiny4412.dts @@ -14,74 +14,16 @@ model = "Tiny4412 based on Exynos4412"; compatible = "samsung,tiny4412", "samsung,exynos4412"; - aliases - i2c0 = "/[email protected]"; - i2c1 = "/[email protected]"; - i2c2 = "/[email protected]"; - i2c3 = "/[email protected]"; - i2c4 = "/[email protected]"; - i2c5 = "/[email protected]"; - i2c6 = "/[email protected]"; - i2c7 = "/[email protected]"; - serial0 = "/[email protected]"; - console = "/[email protected]"; - mmc2 = "/[email protected]"; - mmc4 = "/[email protected]"; - ; - - [email protected]13860000 - samsung,i2c-sda-delay = <100>; - samsung,i2c-slave-addr = <0x10>; - samsung,i2c-max-bus-freq = <100000>; - status = "okay"; + chosen + stdout-path = "serial0"; + ; + aliases + serial0 = "/[email protected]"; + console = "/[email protected]"; ; - [email protected]13810000 + serial0:[email protected]13810000 status = "okay"; ; - - [email protected]12510000 - status = "disabled"; - ; - - [email protected]12520000 - status = "disabled"; - ; - - [email protected]12530000 - samsung,bus-width = <4>; - samsung,timing = <1 2 3>; - cd-gpios = <&gpk2 2 0>; - ; - - [email protected]12540000 - status = "disabled"; - ; - - [email protected]12550000 - samsung,bus-width = <8>; - samsung,timing = <2 1 0>; - samsung,removable = <0>; - fifoth_val = <0x203f0040>; - bus_hz = <400000000>; - div = <0x3>; - index = <4>; - ; - - [email protected]12580000 - compatible = "samsung,exynos-ehci"; - reg = <0x12580000 0x100>; - #address-cells = <1>; - #size-cells = <1>; - phy - compatible = "samsung,exynos-usb-phy"; - reg = <0x125B0000 0x100>; - ; - ; - - emmc-reset - compatible = "samsung,emmc-reset"; - reset-gpio = <&gpk1 2 0>; - ; ;
diff --git a/arch/arm/mach-exynos/Makefile b/arch/arm/mach-exynos/Makefile index 5889802..5575adf 100644 --- a/arch/arm/mach-exynos/Makefile +++ b/arch/arm/mach-exynos/Makefile @@ -15,7 +15,7 @@ ifdef CONFIG_SPL_BUILD obj-$(CONFIG_EXYNOS5) += clock_init_exynos5.o obj-$(CONFIG_EXYNOS5) += dmc_common.o dmc_init_ddr3.o obj-$(CONFIG_EXYNOS4210)+= dmc_init_exynos4.o clock_init_exynos4.o -obj-$(CONFIG_EXYNOS4412)+= dmc_init_exynos4412.o clock_init_exynos4412.o +obj-$(CONFIG_EXYNOS4412)+= dmc_init_exynos4.o clock_init_exynos4412.o obj-y += spl_boot.o tzpc.o obj-y += lowlevel_init.o
diff --git a/arch/arm/mach-exynos/lowlevel_init.c b/arch/arm/mach-exynos/lowleve index 1e090fd..c69be57 100644 --- a/arch/arm/mach-exynos/lowlevel_init.c +++ b/arch/arm/mach-exynos/lowlevel_init.c @@ -218,9 +218,15 @@ int do_lowlevel_init(void) #ifdef CONFIG_DEBUG_UART #if (defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_SERIAL_SUPPORT)) || !defined(CONFIG_SPL_BUILD) - exynos_pinmux_config(PERIPH_ID_UART3, PINMUX_FLAG_NONE); - debug_uart_init(); + + #ifdef TINY4412 + exynos_pinmux_config(PERIPH_ID_UART0, PINMUX_FLAG_NONE); + #else + exynos_pinmux_config(PERIPH_ID_UART3, PINMUX_FLAG_NONE); + #endif + debug_uart_init(); #endif + printascii("UART0 init ... OK !!! "); #endif mem_ctrl_init(actions & DO_MEM_RESET); tzpc_init();
diff --git a/configs/tiny4412_defconfig b/configs/tiny4412_defconfig index ccc9fab..25c6bfb 100644 --- a/configs/tiny4412_defconfig +++ b/configs/tiny4412_defconfig @@ -37,3 +37,14 @@ CONFIG_OF_CONTROL=y #CONFIG_G_DNL_MANUFACTURER="Samsung" #CONFIG_G_DNL_VENDOR_NUM=0x04e8 #CONFIG_G_DNL_PRODUCT_NUM=0x6601 + +#DEBUG UART +# +CONFIG_DEBUG_UART=y +CONFIG_SPL_SERIAL_SUPPORT=y +CONFIG_SPL_GPIO_SUPPORT=y +CONFIG_DEBUG_UART_S5P=y +CONFIG_DEBUG_UART_BASE=0x13800000 +CONFIG_DEBUG_UART_CLOCK=100000000 + +#
tiny4412uboot
1.Builduboota)安装好toolchain(arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz)并设置好环境变量PATH,保证可以正常使用。b)解压uboot_tiny4412-20130729.tgz并进入相应的目录tarxzfuboot_tiny4412-20130729.tgzc)配置uboot并编译cduboot_tiny4412maketiny441 查看详情
x-001friendlyarmtiny4412uboot移植前奏
...链:linaro提供的gcc-linaro-6.1.1-2016.08-x86_64_arm-linux-gnueabi要移植的u-boot版本:u-boot-2016-09参考u-boot版本:友善之臂提供的u-boot-2010-12Tiny4412开发板硬件版本 查看详情
x-004friendlyarmtiny4412uboot移植之点亮指路灯
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<&l 查看详情
x-003friendlyarmtiny4412uboot移植之添加相应目录文件
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 查看详情
x-005friendlyarmtiny4412uboot移植之时钟初始化
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 查看详情
x-009friendlyarmtiny4412uboot移植之sdcard用起来kernelboot起来
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 查看详情
移植qt至tiny210详细过程(代码片段)
实验所需资源:tiny210(cortex-a8)QT版本:5.6.2PC环境:UBUNTUtslib:tslib-1.4交叉工具链:4.5.1开发板已装载好Linux编译tslib可能需要安装的库:sudoapt-getinstallautoconfsudoapt-getinstallautomakesudoapt-getinstalllibtool编译安装步骤如下:tarxzftslib-1. 查看详情
tiny4412-1312__uboot移植(代码片段)
...链:linaro提供的gcc-linaro-6.1.1-2016.08-x86_64_arm-linux-gnueabi要移植的u-boot版本:u-boot-2016-11Tiny4412开发板硬件版本为: 底板: Tiny4412SDK1312B 核心板:Tiny4412-1306 1.获取U-BOOT源码从FTP站点下载: ftp://ftp.denx.... 查看详情
tiny210(s5pv210)移植u-boot(基于2014.4版本号)——移植u-boot.bin(打印串口控制台)
在之前我们移植的代码中,都没看到明显的效果,这节我们实现控制台的信息打印。在上节。我们看到调用relocate_code重定位。在u-boot的帮助文档doc/README.arm-relocation中对重定位有说明。u-boot为了生成位置无关码,在... 查看详情
串口的移植(代码片段)
在串口的移植时候一定要更改使能USART时钟串口1挂载在RCC_APB2Periph,而其他的挂载在RCC_APB1Periph.TXRX的GPIO引脚和时钟中断源杜邦线的连接.(相应的引脚)利用条件编译防止重复编译. #defineDEBUG_USART11#defineDEBUG_USART20#defineDEBUG_USART30#de... 查看详情
armcortex-a9(tiny4412)(代码片段)
要求移植linux增加系统调用并烧写至开发板详细步骤一、搭建linux编译环境1、GCC编译器的安装:tarxzvfarm-linux-gcc-4.5.1-v6-vfp-20120301.tgz-C/arm-linux-gcc-v//查看GCC版本2、gedit~/.bashrcexportPATH=$PATH:/opt/FriendlyARM/toolschain/4.5.1/bin3、rebo 查看详情
uboot移植前奏
Tiny4412开发板硬件版本为: 底板: Tiny4412/Super4412SDK1506 核心板:Tiny4412-1412 1、下载u-boot源代码,建立u-boot代码仓库 参考:h 查看详情
向linux板子上移植串口工具lrz(代码片段)
1下载源码包首先下载最新版的lrzsz,地址:https://ohse.de/uwe/software/lrzsz.html。下面以 0.12.20版本为例,下载源码包为:lrzsz-0.12.20.tar.gz。2解压源码包将下载的源码包通过共享文件夹或SSH等方式,挪到Linux主机ubuntu上去。 然后... 查看详情
tiny4412移植opencv2.4.7手记
在买了新的4412板子后。打算趁着刚成功在6410上移植过的经验,速度解决下。不想出现了各种问题。小结下:1、关于opencv的移植:tiny4412的linux3.5上,须要把opencv的lib内so尽数复制到板子根文件夹lib下。并依照pc的arm-opencv路径。复... 查看详情
基于tiny6410的madplay播放器的移植
在移植madplay之前需要先将所需要的库移植到开发板的文件系统中。 现在每个解压后的文件夹中创建一个文件夹zlib-1.1.4.tar.gz解压:tarxvzf zlib-1.1.4.tar.gz cdzlib-1.1.4 mkdir__install配置:./configure--shared--prefix=$(PWD)/__ins... 查看详情
018_stm32程序移植之_串口接收中文(代码片段)
(一)在平时数据传输中很少用到接收中文的情况,但是最近需要用到就花了半天时间来弄弄(二)接收原理,从现在接收情况分析:一个中文占两个数据的空间,也就是两个十六进制可以转化成为一个中文(三)示例情况,用... 查看详情
uboot研读笔记|03-初步移植uboot2012.04到jz2440(修改时钟,配置串口)(代码片段)
项目开源地址:https://github.com/Mculover666/uboot-jz24400.教程完整目录00-嵌入式Linux系统中Bootloader的作用和基本运行原理01-下载uboot源码并使用VSCode远程查看源码、编译uboot(2012.04.01版本)02-详细探索uboot启动过程(基于... 查看详情