u-boot在s3c44b0 上的移植

本文提供了一份详细的U-Boot 1.1.4版本移植教程,涵盖了从开发板文件的建立到各组件的具体配置修改,帮助读者顺利完成U-Boot在特定硬件平台上的定制开发。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

准备工作已完毕:

u-boot版本u-boot-1.1.4

详细步骤如下:

1,在board文件夹下建立自己的开发板文件,由于dave文件是最接近44b0的文件,所以拷贝修改较简单。

命令:cd u-boot-1.1.4              //进入u-boot目录

            cd board

            cp -R dave myboard   //复制dave文件夹里的内容到myboard文件夹中(建立我的目标板文件夹,名称:myboard)

            cd myboard

            mv B2 myboard_s3c44b0             //将B2内容移到目标板myboard_s3c44b0中

            cd myboard_s3c44b0

            mv B2.c myboard_s3c44b0.c            //

            *修改myboar_s3c44b0文件夹里的Makefile文件,将OBJS  :=B2.o flash.o 修改成OBJS  :=myboard_s3c44b0.o flash.o  保存退出。


  2,然后进入/u-boot-1.1.4/include/configs目录下

        命令: cp B2.h myboard_s3c44b0.h   

3,再进入u-boot-1.1.4目录

           修改Makefile,找到

           B2_config      :      unconfig
       @./mkconfig $(@:_config=) arm s3c44b0 B2 dave
       在后面加上这部分:
           myboard_s3c44b0_config       :      unconfig
       @./mkconfig $(@:_config=) arm s3c44b0 myboard3c44b0 myboard

      注意:在 @./mkconfig$(@:_config=) arm s3c44b0 myboard3c44b0 myboard 前面的是 Tab 来的,万万不能用空格代替,因为它是靠这个来识别命令的!

      (还要将CROSS_COMPILE = arm-linux- 改成CROSS_COMPILE = arm-elf-)

1.1.4 ,编译过程会出现以下错误 :
(1)invalid option ` abi =apcs-gnu'
修改  /cpu/s3c44b0/config.mk
PLATFORM_CPPFLAGS +=$(call cc-option,-mapcs-32,-mabi=apcs-gnu)
PLATFORM_RELFLAGS +=$(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,))
改为
PLATFORM_CPPFLAGS +=$(call cc-option,-mapcs-32,$(call cc-option,-mabi=apcs-gnu))
PLATFORM_RELFLAGS+=$(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,))
(2)出错:make[1]:***没有规则可以创建目标“all”需要的目标 hello_word.srec"

 对u-boot 1.1.1编译也是这样的错误

解决办法:

$cd /u-boot解压目录/examples

$vim Makefile   在第58、59行修改hello_world.srec为hello_world.o  hello_world.bin为hello_world.o

以上修改完毕先编译一次

make distclean

make myboard_s3c44b0_config

make

编译成功后进入下一步

4,修改board里的相关内容

    进入board/myboard/myboard_s3c44b0

   (1)修改初始化代码文件myboard_s3c44b0.c,只需简单修改IO端口值即可

 (2)修改存储器初始化设置文件lowlevel_init.S

5,修改cpu文件中的相关内容

     进入cpu/s3c44b0

    (1)修改start.S,设置中断跳转矢量(这里也要修改#if CONFIG_S3C44B0_CLOCK_SPEED==60)

#if CONFIG_S3C44B0_CLOCK_SPEED==60
ldr r0, =0x88042 /* 60MHz (Quartz=10MHz) */

     (2)修改serial.c,   

            将所有的#if CONFIG_S3C44B0_CLOCK_SPEED==66修改成#if CONFIG_S3C44B0_CLOCK_SPEED==60

            部分代码参考:

        UFCON0 = 0x0;

       ULCON0 = 0x03;

       UCON0 = 0x245;

       UBRDIV0 = divisor;

6,修改include文件中的相关内容

   进入include/configs

     修改myboard_s3c44b0.h文件内容。

其他修改处:

显示信息如下:

修改include/configs/myboard_s3c44b0.h

将#define CONFIG_B21 /* on an B2 Board      */

改成:#define CONFIG_myboard_s3c44b01 /* on an B2 Board      */

修改board/myboard/common/flash.c

将write_buff函数中的#ifdef CONFIG_B2

全部改成:#ifdef CONFIG_myboard_s3c44b0

完成。




           

内容概要:本文详细介绍了基于FPGA的144输出通道可切换电压源系统的设计与实现,涵盖系统总体架构、FPGA硬件设计、上位机软件设计以及系统集成方案。系统由上位机控制软件(PC端)、FPGA控制核心和高压输出模块(144通道)三部分组成。FPGA硬件设计部分详细描述了Verilog代码实现,包括PWM生成模块、UART通信模块和温度监控模块。硬件设计说明中提及了FPGA选型、PWM生成方式、通信接口、高压输出模块和保护电路的设计要点。上位机软件采用Python编写,实现了设备连接、命令发送、序列控制等功能,并提供了一个图形用户界面(GUI)用于方便的操作和配置。 适合人群:具备一定硬件设计和编程基础的电子工程师、FPGA开发者及科研人员。 使用场景及目标:①适用于需要精确控制多通道电压输出的实验环境或工业应用场景;②帮助用户理解和掌握FPGA在复杂控制系统中的应用,包括PWM控制、UART通信及多通道信号处理;③为研究人员提供一个可扩展的平台,用于测试和验证不同的电压源控制算法和策略。 阅读建议:由于涉及硬件和软件两方面的内容,建议读者先熟悉FPGA基础知识和Verilog语言,同时具备一定的Python编程经验。在阅读过程中,应结合硬件电路图和代码注释,逐步理解系统的各个组成部分及其相互关系。此外,实际动手搭建和调试该系统将有助于加深对整个设计的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值