-
引言
现有的一台嵌入式设备基于ARM CortexM3处理器,具有以太网通信功能。为了降低设备维护成本,需要设计网口升级固件功能。本文描述了基于IAP和网口升级该嵌入式系统的方法...
-
系统的返回指针的函数一般都是静态变量指针返回,这个指针指向的内存是同一个区域,存在覆盖问题,在使用中要注意。而且这个函数一般系...
-
摘 要:从Keil C51的内存空间管理方式入手,着重讨论实时操作系统在任务调度时的重入问题,分析一些解决重入的基本方式与方法:分析实时操作系统任务调度的占先性,提出非占先的任务调...
-
1、头文件:#include (我用的是 STC 89C54RD+)
2、预定义:sbit LED = P1^0 // 定义 P1 口的 0 位为 LED
注:&ldqu...
-
1、头文件:#include 2、预定义:sbit LED = P1^0 // 定义 P1 口的 0 位为 LED 注:“P1^0”这个写法,...
-
1、头文件:#include 2、预定义:sbit LED = P1^0 // 定义 P1 口的 0 位为 LED 注:“P1...
-
单片机空间分配看*.M51文件,ARM,DSP空间分配看*.map文件
1、函数定位:假如要把C源文件 tools.c 中的函数int BIN2HEX(int xx)...
-
本编程器设计简单,操作方便,保密性好,易携带,需要的外部设备少。编程器以PIClOF202为例进行设计。PIClOF2xx系列是Microchip公司生产的低功耗,高性能Flash...
来自
PIC|by
一见钟情 |发表时间 2016-10-14
|0个回复
-
嵌入式系统是一个软件和硬件相结合的计算机系统。软件代码经编写、编译、汇编、链接,生成可执行文件,然后将可执行文件加载到嵌入式系统的ROM或flash中,通过嵌入式系统的...
-
因为一个项目中使用malloc函数动态分配内存400多个字节,返回为0,分配失败,查找失败原因,为堆空间不足分配导致。查看堆和栈分别设置了2K,按正常情况看应能满足分配...
-
在嵌入式项目中,经常会用到SD卡升级这一方式来进行产品的软件升级。刚好最近做的项目也需要这一功能,由于之前未接触过IAP开发,刚好在这个时候可以学习一下,于是先到各大网站去搜索相关...
-
关于堆和栈已经是程序员的一个月经话题,大部分有是基于os层来聊的。
那么,在赤裸裸的单片机下的堆和栈是什么样的分布呢?
以下是网摘:
&nbs...
-
一,网上下载的例程,跳转部分的代码有差异,尤其是用的汇编那句
eg:
①Jump_To_Application = (pFunction)(*(vu32*) (IA...
-
我们玩ARM9,一般都是在内存里调试程序,速度飞快。STM32下也可以这样,虽说现在的flash寿命已经很长了,但flash中调试烧录程序还是一个很慢的过程,有时候程序上一个小小的...
-
学习STM32,看了一堆乱七八糟的文档,准备写程序了,先分析了下STM32的启动代码,看着这堆鬼鬼的汇编代码,挺吓人的,看看帮助,查查网路,还是不那么难懂。
;// ...
-
1、遇到错误问题是数据类型不对,导致该步骤永远不能执行到,跳至硬件错误中断;所以硬件中断可尝试查找数据类型错误。
2、堆栈设置错误也会跳至hardwarefault;
3、如果...
-
直接访问寄存器和端口
定义
sfr P0 0x80 sfr  ...
-
首先,我们用 Keil 先打开一个现成的工程,来认识一下 Keil 软件,如图 1-7 所示。
从图 1-7 我们可以...
-
一、五大内存分区:
内存分成5个区,它们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。
1、栈区(stack):FIFO就是那些由编译器在...
-
举例说明volatile:
volatile int i=10;
int j = i;
...
int k = i;
volatile 告诉编译器i是随时可能发生变化的,...