一个因xdata声明引起的隐含错误

我们知道一般增强型c51自身的RAM只有128BYTES,根本不够用,所以一般在定义全局变量,静态变量时都要用XDATA作为关键字修饰数据的的存储类型。但要注意的是,定义和声明一定要一致,不然出现错误很隐蔽,很难发现这个问题。拿我一个项目中的从外部SPI FLASH接口读出数据的教训来举例:

测试发现如果传递一个结构体变量的地址(或指针)就能得到结果,而实际的接收BUFF是一个结构体数组,不管我一什么方式引用其某个元素的首地址就是得不到结果,一直在纠结结构体数组和结构体变量调用的区别的泥淖里出不来。后来发现根本就不是这个事儿,根本原因是因为声明的时候少了关键字XDATA出现一直监控不到读出的数据。

时间: 2024-10-10 15:22:41

一个因xdata声明引起的隐含错误的相关文章

(转)c++模板函数声明定义分离编译错误详解

当我们声明和定义一个模板的时候,必须要让声明和定义放在一个文件里.否则编译器会报错. 这就是为什么boost的实现文件的后缀名是hpp了. 这其中的理由是什么呢?为什么会这样? 首先,一个编译单元(translation unit)是指一个.cpp文件以及它所#include的所有.h文件,.h文件里的代码将会被扩展到包含它的.cpp文件里,然后编译器编译该.cpp文件为一个.obj文件(假定我们的平台是win32),后者拥有PE(Portable Executable,即windows可执行文

跑ssis分组差错:没有关联“”。假设无法找到一个特定的连接元件,Connections 这种错误发生的收集

跑ssis分组差错:没有关联"".假设无法找到一个特定的连接元件,Connections 这种错误发生的收集. 在网上搜了一下,解决方法: 打开SqlServer Configuration Manage右键单击"Sql Server Integration Services"选择"属性".将登录身份改动为"Local System(本地系统)",然后又一次启动该服务. 可是依照这种方法处理后,还是报相同的错误. 突然发现,这

AngularJS一个由于未声明对象而报的错

实现这样的一个需求:点击某个按钮,然后显示或隐藏某块区域. 先注册一个AngularJS的一个module: var myApp = angular.module("myApp",[]); 为module注册controller: myApp.controller("MyController",['$scope',function($scope){ $scope.menuState.show = false; $scope.toggleMenu = function

1217.2——定义一个类+方法声明调用

新建一个类 new file  ->cocoa class  (父类NSObject) .h文件 用来定义属性和方法 .m文件 用来具体实现 方法声明: 1 #import <Foundation/Foundation.h> 2 @interface Person : NSObject{ 3 NSString *name; 4 int age; 5 NSString *address; 6 } 7 -(void)useTools; //无参无返回值的方法声明 8 -(void)setNa

css : 使用浮动实现左右各放一个元素时很容易犯的错误

比如说,有一个div,我想在左侧和右侧各方一个元素. 如果不想用flex,那就只能用浮动了. ... <div class="up clearfix"> <h6>用户添加</h6> <div class="float right"> <Button >新增</Button> </div> </div> ... 咋一看并没有问题,对不对? 但是这样不行:想挂在右侧的那个元素

(转载)你好,C++(24)好大一个箱子!5.1.1 函数的声明和定义

你好,C++(24)好大一个箱子!5.1.1 函数的声明和定义 第5章 用函数封装程序功能 在完成功能强大的工资程序V1.0之后,我们信心倍增,开始向C++世界的更深远处探索. 现在,我们可以用各种数据类型定义变量来表达问题中所涉及的各种数据:用操作符连接这些变量对其进行运算:用程序流程控制结构来控制对这些数据的复杂处理过程,最终实现对数据进行处理得到结果,而这就是程序了.但是,随着要处理的问题越来越复杂,程序的代码自然也就会越来越复杂.如果把所有程序代码都放到main()主函数中,主函数也会越

你好,C++(24)好大一个箱子!5.1.1 函数的声明和定义

第5章 用函数封装程序功能 在完成功能强大的工资程序V1.0之后,我们信心倍增,开始向C++世界的更深远处探索. 现在,我们可以用各种数据类型定义变量来表达问题中所涉及的各种数据:用操作符连接这些变量对其进行运算:用程序流程控制结构来控制对这些数据的复杂处理过程,最终实现对数据进行处理得到结果,而这就是程序了.但是,随着要处理的问题越来越复杂,程序的代码自然也就会越来越复杂.如果把所有程序代码都放到main()主函数中,主函数也会越来越复杂.这就像将所有东西都堆放到一个仓库中,随着东西越堆越多,

错误:‘uuid_t’在此作用域中尚未声明

安装TFS报错: session_util.cpp: In static member function 'static std::string tfs::common::SessionUtil::gene_uuid_str()': session_util.cpp:17: 错误:'uuid_t'在此作用域中尚未声明 session_util.cpp:17: 错误:expected ';' before 'uu' session_util.cpp:18: 错误:'uu'在此作用域中尚未声明 se

解决latex中遇到一个常见错误:&quot;Improper alphabetic constant.&quot;

1.问题: 本人是在WIN7下用texlive 2016,编辑器用的是WinEdt 10.1 ,运行如下代码: 1 \documentclass{ctexbook} 2 \begin{document} 3 \title{中文 \LaTeX{} 测试} 4 \author{姓名} 5 \maketitle 6 \tableofcontents 7 \chapter{测试} 8 中文测试. 9 \chapter{再测试} 10 中文测试. 11 \end{document} 返回如下错误: ! I