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。此句执行完后,则实现跳转。
STM32F103 ucLinux开发BOOT的更多相关文章
- STM32F103 ucLinux开发之一(BOOT分析及源码)
STM32F103 ucLinux开发BOOT STM3210E-EVAL官方开发板主芯片STM32F103ZET6: 片内512K Flash,地址0x0800 0000 ~ 0x0807 FFFF ...
- STM32F103 ucLinux开发之四(内核启动后的调试)
Stm32-uclinux启动后的调试 1. 修改__pfn_to_page使得能够启动 根据STM32F103 ucLinux开发之三(内核启动后不正常)的描述,内核无法启动是选择了平板内存模式后 ...
- STM32F103 ucLinux开发之三(内核启动后不正常)(完结)
STM32F103 ucLinux内核没有完全启动 从BOOT跳转到内核后,执行一长段的汇编语言,然后来到startkernel函数,开启C语言之旅. 但是内核输出不正常,如下所示: Linux ve ...
- STM32F103 ucLinux开发之二(内核启动汇编代码分析)
start_kernel之前的汇编代码分析 Boot中执行下面两句话之后,进入uclinux内核. theKernel = (void (*)(int, int, unsigned int))((ui ...
- STM32F103 ucLinux内核没有完全启动
STM32F103 ucLinux内核没有完全启动 从BOOT跳转到内核后,执行一长段的汇编语言,然后来到startkernel函数,开启C语言之旅. 但是内核输出不正常,如下所示: Linux ve ...
- Stm32-uclinux启动后的调试
Stm32-uclinux启动后的调试 1. 修改__pfn_to_page使得能够启动 根据STM32F103 ucLinux开发之三(内核启动后不正常)的描述,内核无法启动是选择了平板内存模式后 ...
- Keil MDK STM32系列(一) 基于标准外设库SPL的STM32F103开发
Keil MDK STM32系列 Keil MDK STM32系列(一) 基于标准外设库SPL的STM32F103开发 Keil MDK STM32系列(二) 基于标准外设库SPL的STM32F401 ...
- [原创]STM32 BOOT模式配置以及作用
一.三种BOOT模式介绍 所谓启动,一般来说就是指我们下好程序后,重启芯片时,SYSCLK的第4个上升沿,BOOT引脚的值将被锁存.用户可以通过设置BOOT1和BOOT0引脚的状态,来选择在复位后的启 ...
- Bean 装配,从 Spring 到 Spring Boot
目录 从SSM的集成谈到Bean的装配 Bean的装配 由XML到Java Config 自动扫描 Bean的注入 SSM集成的Java版 Spring Boot Magic Auto Confi ...
随机推荐
- linux解压tar.gz
gnuzip或者tar -zxvf file.tar.gz unzip file.zip
- display none隐藏后如果表单有数值,那么他的数值还存在!
以前以为display:none后他的值就不存在了, display:none隐藏后如果表单有数值,那么他的数值还存在.(项目出了问题!!) <!DOCTYPE html PUBLIC &quo ...
- AIX6.1配置etherchannel
如果系统之前网卡为up状态,需要将网卡变更为detach chdev -l en2 -a state=detach 绑定完成后,配置IP地址 #smitty mktcpip
- RPC簡介
RPC 技术原理 RPC ( Remote Procedure Call Protocol,远程过程调用协议 ): 客户端在不知道调用细节的情况下,调用存在于远程计算机上的某个对象,就像调 ...
- 微信小程序上传Excel文本文件功能
问题: 在开发过程中会发现微信小程序有很多功能都还不能满足我们的需求,谁叫客户就是上帝呢,前几天小编遇到了这么个问题,就是用微信小程序上传文件,但是还以为微信带有这个模块,可是查了许久还是没有找到,只 ...
- 合理选择css3动画实现方式
使用css3实现动画,比js控制DOM属性的方式要高效很多.流畅很多,主要分transition和animation两大方式. transition适用于一次性变换 animation适用于循环动画和 ...
- Pycharm Html CSS JS 快捷方式创建元素
div#div1>ol>li.id*4 tab键 <div id="div1"> <ol> <li id="id"&g ...
- springMVC结合AjaxForm上传文件
最近在项目中需要上传文件文件,之前一直都是form提交的,尝试了一下AjaxForm,感觉还比较好用,写篇随笔mark下,供以后使用. 准备工作: 下载jquery-form.js 相关jar: co ...
- 对JDBC的轻量级封装,Hibernate框架
IDEA是真的好用... 用脑子下jar包..http://mvnrepository.com/
- Jquery组织Form表单提交之Form submission canceled because the form is not connected
有时候导出Excel时需要根据某些条件筛选数据,然后将数据通过NPOI生成Excel并导出.组织数据时可以通过放到一个表单中,某些场景是使用脚本(如:jquery)组织一个form(通过字符串拼接), ...