Uboot S3C2440 BL1 的流程

发布时间:2024-07-18  

1.   reset

      中断向量表

2. 进入reset

     (1) 设置svc32 模式

       (2) flash  I/D caches

        (3)disable  MMU 和 cache

        (4)2440 没有onenand 

         (5)bl   lowlevel_init    

 

接 (5)

        1.初始化时钟

        2. 初始化UART,串口

        3.nandflash 简单初始化

         4. 判断当前uboot 是否运行在内存中,如果不是则进行内存初始化

返回 (5)后面

跳过宏定义

从NandFlash 中拷贝bootloader到内存中

设置堆栈,为C语言做准备

清除BSS段

 

 

uboot 配置编译:

make smdk2440 config

make

arm-linux-objdump -D -S  uboot.bin 30000000

./dnw  uboot.bin 30000000

 

 

 

souceinsight 高亮 shift + F8

第二部分从startarmboot开始

做两件事情:

1.硬件初始化

2.软件初始化,初始化一些环境变量

(1)初始化串口

 (2)LCD 初始化

 (3)初始化 网卡

  (4)初始化LED

    (5)main loop 最后执行用户输入命令

 

 

 

 

1.通过uboot 下面的 Makefile 找到对应的芯片的配置

2. 在 board/samsung/xxx  找到 链接器脚本 u-boot.lds

可以看到代码段的入口文件 Start.o  --》 Strat.S

3. Start.S 文件在 cpu/xxxx  里面

4. 分析第一阶段(BL1)的bootloader 代码

5.有一个中断向量表,向量表最前面是 reset

6. 分析 reset 的内容

         (1) svc

         (2) I/D cache

         (3)  关闭 MMU

         (4)外侧基地址初始化 (6410独有)

           (5)OneNand

           (6) bl lowlevel_init (lowlevel_init.S 单独文件)     

                board/samsung/xxx   

                   点亮LED,

                   disable watchdog 关闭所有中断 (为什么2440 没有做呢?2440 在 时钟初始化函数里面做了)

                   返回

        (7) copy from nand

        (8)堆栈初始化

         (9)清除bss段

      进入第二阶段 BL2

 

 

210 分析过程

svc

跳转到 xxx

    关闭L1  

   disable MMU 和cache

low level init

          检查 reset状态

           IO引脚初始化(恢复IO引脚为默认值)

           disable watchdog 

            SRam SRom 初始化

           时钟初始化 内存初始化

          串口初始化

          取消存储保护区

          简单初始化NandFlash 

          disable ADB

           返回

设置堆栈

判断当前是否在内存运行

判断从哪种flash启动的

进入 board_init_f_nand 函数

 跳转 到内存里执行 BL2

 

BL2 在连接器脚本里面, u-boot.lds

arch/arm/cpu/armv7


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

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

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

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

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

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

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

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