U-Boot-2009-03移植笔记(第二阶段移植准备)

发布时间:2024-09-04  

在U-Boot-2009-03移植笔记(从Nandflash启动二)中,我们移植好了Nandflash的读驱动,并且将U-boot从nandflash中搬运到了sdram,接下来的工作,就是沿着u-boot的执行主线,继续往下修改代码。


测试代码是否正确执行到第二阶段


U-BOOT的启动,分为两个阶段,第一个阶段是在cpu/arm920t/start.S中的汇编代码,主要工作是设置CPU工作模式、关看门狗、禁中断、初始化内存、代码搬运,初始化堆栈,清BSS段,然后跳转到start_armboot函数执行,这个start_armboot在lib_arm/board.c中,我们在这个start_armboot函数的一开始,点亮led1,led2,led3三盏灯。


1、在board/xinna2440下面增加一个led_op.c文件,内容如下:


 1 #define GPBCON  (*(volatile unsigned long *)0x56000010)

 2 #define GPBDAT  (*(volatile unsigned long *)0x56000014)

 3 

 4 int led_on(int index)

 5 {

 6     if(index == 1)

 7     {

 8         GPBCON = (1 << 10);

 9         GPBDAT = ~((1 << 5));

10     }

11     else if(index == 2)

12     {

13         GPBCON = (1 << 10) | (1 << 12);

14         GPBDAT = ~((1 << 5) | (1 << 6));

15     }

16     else if(index == 3)

17     {

18         GPBCON = (1 << 10) | (1 << 12) | (1 << 14);

19         GPBDAT = ~((1 << 5) | (1 << 6) | (1 << 7));

20     }

21     else 

22     {

23         GPBCON = (1 << 10) | (1 << 12) | (1 << 14) | (1 << 16);

24         GPBDAT = ~((1 << 5) | (1 << 6) | (1 << 7) | (1 << 8));

25     }

26     return 0;

27 }


2、修改board/xinna2440/Makefile增加对led_op.c的编译。


3、修改lib_arm/board.c,在start_armboot函数一开始死循环调用led_on(3)。


4、烧写,运行,发现三盏灯全亮。


找出移植点


我们基于smdk2410的bsp进行移植,那么只要找出s3c2410和s3c2440的不同点以及主板的不同点,然后针对这些不同点进行代码修改,即可完成移植。


S3C2410 vs S3C2440:


1、时钟不同


2、Nandflash控制器不同


3、中断控制器不同


4、主板GPIO链接不同


5、网卡芯片不同。


找出这些不同点,我们一步一步修改代码,直到U-boot正常运行即可。

文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    s3c6410 uboot初步移植;对uboot主要是修改: 1、更改交叉编译器   CROSS_COMPILE ?= arm-linx- 2、对board项进行修改 3、include项修改 4......
    等于220V。   需要注意的是,星形接法的电压大小并不是固定的,它取决于电源的线电压。在不同的三相电力系统中,线电压可能会有所不同,因此星形接法的电压大小也可能不同。   星形接法和三角形接法哪个......
    移植到AT32,提供了Application Note (应用手册),在移植前还-要将厂商提供的文档《AT32F403A_入门指南》和MG0007这两个文件好好看看,里面介绍的比较全面,本篇文章的重点是介绍每一步移植......
    尽可能和人家一样的,最后还是不行。有哪位仁兄要知道是哪个关键选项没选上的话告诉我下啊,谢谢哈。至少现在能用了,这个先放下。  1 LCD 驱动基础知识          Linux-2.6.32.2 内核......
    015_STM32程序移植之_NRF24L01模块;引脚接线图如下所示 STM32引脚 NRF24L01引脚 功能 GND GND 3.3V 3.3V PB8 CE PB9......
    UCOS2_STM32移植详细过程 (一);Ⅰ、概述 该文写针对初学µC/OS的朋友,基于以下平台来一步一步移植µC/OS嵌入式操作系统。UCOS移植相关平台: 系统平台:µC/OS-II(最新......
    STM32 系列MCU 不同型号的移植步骤解析;STM32 系列MCU 不同型号的移植! 第一步 更换启动文件: 第二步 修改宏定义: 图 1 或者修改stm32f10x.h 具体......
    方提供的源码中,包含有诸多芯片的工程示例,LPC系列和STM32F系列的很多。再者RT-Thread代码开源,又有那么详细的资料,如果遇到官方bsp下没有的芯片,对于动手能力强的同学,自己动手移植......
    满足消费者用户和生态开发者的需求,促进国产开源操作系统与RISC-V生态的融合。在此基础上,玄铁团队联合生态合作伙伴进一步移植并优化Chromium浏览器、VS Codium、钉钉等主流软件,完善高性能场景下的RISC-V软件......
    PLC顺序控制中编制梯形图的四种方式;可编程控制器PLC外部接线简单方便,它的控制主要是程序的设计,编制梯形图是最常用的编程方式,使用中一般有经验设计法,逻辑设计法,继电器控制电路移植法......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>