随笔分类 -  STM32F10X系列芯片使用

STM32F103 ucLinux开发之四(内核启动后的调试)
摘要:Stm32-uclinux启动后的调试1、 修改__pfn_to_page使得能够启动根据STM32F103 ucLinux开发之三(内核启动后不正常)的描述,内核无法启动是选择了平板内存模式后,下面两个宏定义,导致计算错误,从而Backtrace的。#define __pfn_to_page(pf... 阅读全文

posted @ 2015-01-10 17:41 wangyw 阅读(5788) 评论(0) 推荐(0) 编辑

STM32F103 ucLinux开发之三(内核启动后不正常)(完结)
摘要:自行编写BOOT启动ucLinux后,内核不能完全启动,卡在mem_init函数,走不下去。分析原因,发现是STM32F103,内核的内存分配有问题,但是暂时找不到解决的办法。 阅读全文

posted @ 2014-03-23 00:09 wangyw 阅读(2913) 评论(0) 推荐(0) 编辑

STM32F103 ucLinux开发之二(内核启动汇编代码分析)
摘要:BOOT跳转到内核后,首先要执行一长段的汇编代码,然后才能跳转到C语言函数start_kernel。本文分析start_kernel函数之前的汇编代码,做个记录。 阅读全文

posted @ 2014-03-22 21:07 wangyw 阅读(3668) 评论(0) 推荐(0) 编辑

STM32F103 ucLinux开发之一(BOOT分析及源码)
摘要:STM3210E-EVAL官方开发板,主芯片STM32F103ZET6,支持ucLinux开发,官网也给出了开发套件。但是官网没有给出BOOT的源代码, 只有HEX文件(根据推测该HEX文件时KEIL生成的)。 看过UBOOT的启动后,了解了BOOT启动都干些什么事,我仿照UBOOT在KEIL软件下写功能超级简单的BOOT,就是完成外设的初始化, 初始化控制器串口1,经过验证,可以跳转到内核,内核能够实现printf打印输出。 阅读全文

posted @ 2014-03-22 20:55 wangyw 阅读(16383) 评论(0) 推荐(1) 编辑

STM32F103片外运行代码分析
摘要:KEIL开发STM32F103程序,在片外NorFlash或者是SRAM中运行。 STM32F103有三种启动方式,但是都无法直接在NorFlash或者片外SRAM启动,因此需要BootLoader,然后再执行跳转。 附件里有三个文件夹,一个是BOOT,一个是NorFlash应用程序,一个是SRAM应用程序,都是采用KEIL3.8编译。 本次选用BootLoader放在片内Flash,启动后配置FSMC_SRAM、以及FSMC_NOR,然后执行跳转到片外运行。 阅读全文

posted @ 2014-03-22 17:41 wangyw 阅读(2331) 评论(0) 推荐(0) 编辑

STM32F10X固件库函数——串口清状态位函数分析
摘要:STM32F10X固件库函数——串口清状态位函数分析最近在测试串口热插拔功能的时候,意外发现STM32F10X的串口库函数中,清理串口状态位函数稍稍有点不解。下面是改函数的源码:/******************************************************************************** Function Name : USART_ClearFlag* Description : Clears the USARTx's pending flags.* Input : - USARTx: Select the USART or theU 阅读全文

posted @ 2014-03-20 18:28 wangyw 阅读(1715) 评论(0) 推荐(0) 编辑

Keil开发的ARM程序main函数之前的汇编分析
摘要:Cortex-M3上电后来到复位中断(已将前4个字节的值存入MSP堆栈指针),转到__main标号,完成RW段的移动、ZI段的初始化,建立堆栈,初始化库函数,然后跳转到main函数,开启C程序之旅。本文以Cortex-M3为例,介绍系统上电到启动的流程,主要分析RW段的初始化。 阅读全文

posted @ 2014-03-20 16:37 wangyw 阅读(2959) 评论(0) 推荐(0) 编辑

STM32平台SD卡的FatFS文件系统开发
摘要:FatFS是一个为小型嵌入式系统设计的通用FAT(File Allocation Table)文件系统模块,可以很容易实现移植,本文以STM32主芯片、uCos-II操作系统为例,SPI方式操作SD卡,实现对SD卡文件的读取,写入,并将SD卡拿到WINDOWS下查看,确保文件的正确存储。 阅读全文

posted @ 2014-03-20 16:10 wangyw 阅读(2474) 评论(0) 推荐(0) 编辑

STM32 Cortex-M3 NMI异常
摘要:调试STM32 Cortex-M3 HardFault异常,以外发现程序居然进入了NMI异常。对于这种异常,从来没有出现过,对其分析,查找原因。 阅读全文

posted @ 2014-03-20 15:54 wangyw 阅读(5964) 评论(0) 推荐(1) 编辑

应对STM32 Cortex-M3 Hard Fault异常
摘要:Hard fault (硬错误,也有译为硬件错误的)是在STM32(如无特别说明,这里的STM32指的是Cortex-M3的核)上编写程序中所产生的错误,造成Hard Fault错误的原因也是最为纷繁复杂的。由于能导致该错误的原因很多,所以一但出现,比较难找到其原因。网上有很多类似的这种方法,现在我将其稍加整理,并结合我曾经遇到过的问题,详细说明。 阅读全文

posted @ 2014-03-20 15:42 wangyw 阅读(17737) 评论(0) 推荐(3) 编辑

STM32的备份寄存器和控制状态寄存器
摘要:STM32的备份寄存器和控制状态寄存器1 备份寄存器用于RTC时钟RTC时钟可以在掉电以后继续计数,保证时间的延续,但是重新上电以后需要配置,保证之前的计数不会被清除,可以借助备份寄存器实现,备份寄存器掉电以后也可以保持。if (BKP_ReadBackupRegister(BKP_DR1) != 0xA5A5) //检测备份区域寄存器的值 { RTC_Configuration(); //配置RTC Time_Adjust(); //调整时间,将UNIX时间设入RTC计数值 BKP_WriteBackupRegister(BKP_DR1, 0xA5A5); //给BKP_DR1写入0xA5A 阅读全文

posted @ 2014-02-09 21:06 wangyw 阅读(3688) 评论(0) 推荐(0) 编辑

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示