zoukankan      html  css  js  c++  java
  • STM32F103 ucLinux开发之一(BOOT分析及源码)

    STM32F103 ucLinux开发BOOT

    STM3210E-EVAL官方开发板
    主芯片STM32F103ZET6:

    片内512K Flash,地址0x0800 0000 ~ 0x0807 FFFF;

    64K RAM,地址0x2000 0000 ~2000 FFFF。

    利用其FSMC功能外扩了NorFlash和SRAM:
    NorFlash大小16M,地址0x6400 0000 ~ 6500 0000
    SRAM大小1M,地址0x6800 0000 ~ 0x6810 0000

    ST官网已经给出了uCLinux开发的套件,但是提供的BOOT只是个Hex文件,没有源码。

    看过UBOOT源码后,明白了BOOT都要做什么事,我在KEIL下编写了一个超级简单的BOOT,可以实现到内核的跳转,并通过

    printf函数打印输出,源码下载地址:

    http://www.pudn.com/downloads611/sourcecode/embedded/detail2490802.html 

    主要源码如下:

    SystemInit();  //初始化时钟

    FSMC_SRAM_Init(); // SRAM初始化
    FSMC_NOR_Init(); // NOR FLASH初始化

    USART1_Configuration(USART1_BPS); // RS232配置,串口1作为控制台输出

    setup_start_tag();    //ATAG_CORE
    //setup_memory_tags();    //我分析官网的HEX文件,没有这个ATAG_MEM
    setup_commandline_tag(g_strCmdLine);   //ATAG_CMDLINE
    setup_end_tag();               //ATAG_NONE

    theKernel = (void (*)(int, int, unsigned int))((uint32_t)KernelStartAddrss);  //跳转地址,片内FLash是0x0800 3000,片外Nor Flash是0x6400 0000
    theKernel(0, 2189, ((uint32_t)TagStartAddress));  //分析内核源码,Tag起始地址应该是0x6800 0100。此句执行完后,则实现跳转。

  • 相关阅读:
    网络监控之三:ifstat、iftop
    JavaScript框架比较
    Enterprise Architect
    设计模式:Abstract Factory和Builder(转)
    Flexibility Pattern架构和设计模式
    Struts的html:errors的用法
    更好的浏览器判定
    纯CSS细线伪表格
    javascript 随机数
    一些javascript题目
  • 原文地址:https://www.cnblogs.com/fozu/p/3618076.html
Copyright © 2011-2022 走看看