摘要:
今天接着写一个单片机程序,出现这个问题,我仔细查看每一句语句,发现逻辑上没有错误,但就是出现这个问题,不能生成目标文件: *** ERROR L107: ADDRESS SPACE OVERFLOW SPACE: DATA SEGMENT: ?DT?USART_READWRITE LENGTH: 0 阅读全文
摘要:
从数据存储类型来说,8051系列有片内、片外程序存储器,片内、片外数据存储器,片内程序存储器还分直接寻址区和间接寻址类型,分别对应code、data、xdata、idata以及根据51系列特点而设定的pdata类型,使用不同的存储器,将使程序执行效率不同,在编写C51程序时,最好指定变量的存储类型, 阅读全文
摘要:
C51强大功能及其高效率的重要体现之一在于其丰富的可直接调用的库函数,多使用库函数使程序代码简单,结构清晰,易于调试和维护,下面介绍C51的库函数系统。 第一节 本征库函数(intrinsic routines)和非本征证库函数 C51提供的本征函数是指编译时直接将固定的代码插入当 前行,而不是用A 阅读全文
摘要:
入理解并应用C51对标准ANSIC的扩展是学习C51的关键之一。因为大多数扩展功能都是直接针对8051系列CPU硬件的。大致有以下8 类:l 8051存储类型及存储区域 l 存储模式l 存储器类型声明 l 变量类型声明 l 位变量与位寻址 l 特殊功能寄存器(SFR) l C51指针 l 函数属性具 阅读全文
摘要:
第一节 系统概述 Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易 用。用过汇编语言后再使用C来开发,体会更加深刻。Keil C51软件提供丰富的库函数和功能强大的集成开发调 阅读全文
摘要:
具有“静态”生存期的未初始化变量(即,在函数外声明的变量和有静态存储类型的变量)可以确保初始值为零,就像程序员键入了“=0”一样。因此,这些变量如果是指针会被初始化为正确的空指针,如果是浮点数会被初始化为0.0(或正确的类型)。 具有“自动”生存期的变量(即,没有静态存储类型的局部变量)如果没有显示 阅读全文
摘要:
内存分为三个部分:静态区、栈、堆。 其实堆栈就是栈,而不是堆。 堆的英文是heap;栈的英文是stack,也翻译为堆栈。 阅读全文
摘要:
如题,在程序中经常遇到NULL,和'\0',常常疑惑它们是什么关系,其实它们的值是一样的,只不过表现的形式不一样: 1、NULL; NULL 即空指针,在C和C++中的形式不一样,msdn上有如下的内容那个: #if !defined(NULL)&&defined(__NEEDS_NULL) #if 阅读全文
摘要:
【@.1 任务调度时机】 之前的一篇文章分析了具体的uCOS-II中的任务切换机制,是从函数调用的角度上分析的。这次我具体从整个程序运行的时间上来看,分析多种任务调度发生的时机。以下所有图片均可点击放大观察。 所有图中红色箭头表示中断级的任务切换,蓝色箭头表示任务级的中断切换。 1. 仅有一个任务, 阅读全文
摘要:
在看uCOS II V2.91版本源代码时,在ucos_ii.c源文件中发现下面的代码: 1 #include <os_core.c> 2 #include <os_flag.c> 3 #include <os_mbox.c> 4 #include <os_mem.c> 5 #include <os 阅读全文