1.Fatal Error[Pe1696]: cannot open source file core_cmInstr.h STM32F10x_StdPeriph_Driver 3.4库移植换成3.6.1库时 出现 Fatal Error[Pe1696]: cannot open source file "core_cmInstr.h" 3.6.1库取消了 core_cm3.c 文件 ,增加了 core_cmFunc.h core_cmInstr.h 文件,只要将这两个文件添加进来即可…
一.移植环境说明 (1).win10系统 (2).IAR(EWARM)7.7 (3).STM32标准固件库3.5.0 http://www.st.com/content/st_com/en/products/embedded-software/mcus-embedded-software/stm32-embedded-software/stm32-standard-peripheral-libraries/stsw-stm32054.html 二.移植步骤 (1).首先建立一个C语言的main工…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是MCUXpresso IDE下将源码制作成Lib库方法及其与IAR,MDK差异. 程序函数库是一个包含已经编译好代码和数据的函数集合,这个库文件里的函数可以供其他程序调用.被放进库文件里的代码通常具有一定通用性,是经过高度抽象的,这样可以避免重复造轮子.程序函数库设计可以使得程序的开发工作更加模块化,更容易重新编译,也更方便升级. 嵌入式开发里有时候也会需要涉及函数库文件,除了模块化开发以及方便升级特点外,有时候也是为了对源代码进行…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是IAR下调试信息输出机制之硬件UART外设. 在嵌入式世界里,输出打印信息是一种非常常用的辅助调试手段,借助打印信息,我们可以比较容易地定位和分析程序问题.在嵌入式应用设计里实现打印信息输出的方式有很多,本系列将以 IAR 环境为例逐一介绍 ARM Cortex-M 内核 MCU 下打印信息输出方法. 本篇是第一篇,我们先介绍最常见的输出打印信息方式,即利用 MCU 芯片内的硬件 UART 外设.本篇其实并不是要具体介绍 UART…
stm32启动代码分析 (2012-06-12 09:43:31) 转载▼     最近开始使用ST的stm32w108芯片(也是一款zigbee芯片).开始看他的启动代码看的晕晕呼呼呼的. 还好在csdn上看到一片文章写的不错,分享下: 文章转载至:http://blog.chinaunix.net/uid-2595338-id-2139588.html,感谢原作者!   使用的芯片是 STM32F103VET,编译器使用 IAR ARM V5.5   设置头文件查找路径,例如: $PROJ_…
stm32是一个当下非常流行的微控制器,很多人都加入了学习stm32的行列中,常用的stm32编译器有IAR和mdk两种,接下来是利用stm32固件库3.5在IAR下的建立的工程模板历程: 1.在常用的文件夹下新建立一个文件夹,根据个人喜好,分别建立如下几个文件夹,用于分别存放固件库中的文件和用户自己的文件 2.将固件库E:\STM32\stm32固件库3.5\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\…
摘要:FRDM-KE02Z是飞思卡尔公司较为新的微控制器,学习和开发资料较少.从本篇开始会陆续介绍其相关的开发流程,并完成一个小型的工程项目.这是本系列博客的第一篇,主要介绍开发环境IAR for ARM的搭建.调试工具的使用,并演示一个串口例程.开发freescale Kinetis KE02Z,可选的开发环境有三个:Codewarrior IDE (Eclipse).IAR for ARM或者Keil for ARM.由于Codewarrior 10.4版本下载比较麻烦,而且工程文件繁杂,不…
在Keil和IAR的工程中,为了使文件结构清晰,通常会设置很多的子文件夹,然后将头文件和源文件放在不同的子文件夹中,这样就需要手动添加这些头文件夹的路径.当工程结构非常复杂时,文件夹的数量就非常多,特别是从别人那里拷贝过来的工程目录,添加头文件路径就变得非常的繁琐.所以我们需要一个自动化的方法.该方法会搜索工程目录的文件夹和子文件夹,将其中包含了.h文件的路径找出来,并转换成keil和IAR要求的格式.这个难不倒程序员,只是简单的文件查找,再用点正则就行,QT也好,python也好都很容易实现.…
文章首发于浩瀚先森博客 #栈的理解 一个程序大体上讲都是由变量和函数组合而成,变量有全局变量和局部变量,还有函数间传值的参数以及返回值. Stack是为了程序运行过程中临时保存所需数据而在内存里分配的一小块空间.保存的数据类型一般情况下包括以下几种: 1. 函数中声明的局部变量以及参数 2. 函数返回值 3. 中断时CPU 寄存器值 4. 函数运行后返回的地址 比方说下面的例子,函数里声明的局部变量保存在stack里面,在该函数中调用其他函数的时候其他函数中的局部变量也会添加到stack里保存.…
文章首发于浩瀚先森博客 堆栈的概念在脑海里已经存在有一段时间了,今天就测试来整理下Heap堆.栈以后再说. 堆区不像全局变量和局部变量总是有指定的内存大小,它是为了在程序运行时动态分配内存而设定的一块区域. 在程序运行时需要一块特定大小的内存空间来使用的时候,那么可以先声明空间大小值,然后在程序运行时会在某个区域里划分指定大小的内存空间出来,这里所说的某个区域就是堆区. 堆内存通常用类似malloc,free的函数来分配内存大小和释放内存. Malloc函数用来动态分配堆内存空间.成功分配空间后…