关于STM8的用户数据空间读写问题

情况是这样的,我的程序里有一个参数,数值不超过1000,我要保存到EEPROM中,那就要分两个字节存放。我用下面的方式保存是正常的:

BASE = 0x4000;
param = 999;
eeprom_write(BASE+0x01, param/256);
eeprom_write(BASE+0x02, param%256);

当我准备读的时候,自然想到的是这样:

param = eeprom_read(BASE+0x01)<<8 + eeprom_read(BASE+0x02);

但是怎么读都不成功,param始终是0
后来我想了一起,也许是编译器的理解问题。上一句语句中,其实是三个操作:读、读、加。我估计是编译器拆解语句有问题吧,后来我就干脆自己帮编译器先拆解好:

param = eeprom_read(BASE+0x01)<<8;
param += eeprom_read(BASE+0x02);

这样,读出来的param就正常了。

关于STM8的用户数据空间读写问题,布布扣,bubuko.com

时间: 2024-11-02 07:57:21

关于STM8的用户数据空间读写问题的相关文章

全文索引Sphinx+binlog日志+Grant用户授权+读写分离和主从复制

一.全文索引Sphinx 1.什么是Sphinx Sphinx是由俄罗斯人Andrew Aksyonoff开发的一个全文检索引擎.它是基于C语言开发出来的.中文翻译为斯芬克司斯芬克司. Sphinx最好的应用操作系统是Linux 2.Sphinx的优势 Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索.Sphinx特别为一些脚本语言设计搜索API接口,如PHP,Pytho

[iOS微博项目 - 2.5] - 封装授权和用户信息读写业务

github: https://github.com/hellovoidworld/HVWWeibo   A.封装授权业务 1.把app的授权信息移动到HVWWeibo-Prefix.pch中作为公共宏 1 // 授权信息 2 #define HVWAppKey @"3942775926"; 3 #define HVWAppSecret @"cc577953b2aa3aa8ea220fd15775ea35" 4 #define HVWGrantType @"

DDR3(7):用户端读写控制

对对对 一.对对对 二.用户写控制器 对对对 三.用户读控制器 对对对 四.仿真设计 对对对 原文地址:https://www.cnblogs.com/xianyufpga/p/12090250.html

Linux 下用户(andy)创建的文件可让特定用户(alice)修改

添加用户组ateam 在root用户下创建目录 /home/ateam-text 添加andy alice tom 用户 把andy alice用户添加到作为补充组的ateam组 将目录 /home/ateam-text 的所属组改为ateam 更改目录/home/ateam-text 的组权限 此时andy alice 用户在 目录/home/ateam-text 下都有读写执行权限 而tom用户无读写权限 但对于andy alice用户 分别在目录/home/ateam-text下创建的子目

vsftpd虚拟用户整理

Vsftpd虚拟用户的配置 第一步.安装 # wget http://docs.linuxtone.org/soft/lemp/CentOS-Base.repo # yum clean all # yum -y install vsftpd # yum -y install db4-utils 第二步.建立虚拟用户 #vim /home/ftpusr.txt 1.  user1 2.  password1 3.  user2 4.  password2 5.  user3 6.  passwor

linux用户和权限管理

目录: 一.用户相关 配置文件.命令(groupadd.groupmod.groupdel.useradd.usermod.userdel.passwd.gpasswd.newgrp) 二.权限相关 命令(chmod.chown.chgrp.umask),额外(id.su) 三.杂项 随笔记录 用户权限管理单从字面上就能明白是什么,而且大致也就是这么个意思.而只要是从事电脑方面工作的人也都用的到,我想谁也不想自己管理的主机没事多些小东西吧. 用户只是系统上面用来标识一个身份的名称,而身份说白了就

VSFTPD配置虚拟用户 -V2

1.安装vsftpd #yum install  vsftpd 2.建立虚拟用户,格式为第一行为用户名名,第二行为密码,然后类推 #vim /home/loginuser.txt 3.为虚拟用户生成建立db数据库,同时只有root用户才能读写 # db_load -T -t hash -f /home/loginuser.txt /etc/vsftpd/vsftpd_login.db # chmod 600 /etc/vsftpd/vsftpd_login.db 4.配置pam文件 # u (6

UNIX文件的权限之“设置用户ID位”

用stat函数可以获取一个文件的状态信息,原型是这样的: int stat(const char *path, struct stat *buf); 其中结构体stat的结构: struct stat { dev_t st_dev; /* ID of device containing file */ ino_t st_ino; /* inode number */ mode_t st_mode; /* protection */ nlink_t st_nlink; /* number of h

Amoeba实现mysql的读写分离 CentOS6.5下

Amoeba是一个以MySQL为底层数据存储,并对应用提供MySQL协议接口的proxy.它集中地响应应用的请求,依据用户事先设置的规则,将SQL请求发送到特定的数据库上执行.基于此可以实现负载均衡.读写分离.高可用性等需求.与MySQL官方的MySQL Proxy相比,作者强调的是amoeba配置的方便(基于XML的配置文件,用SQLJEP语法书写规则,比基于lua脚本的MySQL Proxy简单) 不足 a).目前还不支持事务b).暂时不支持存储过程(近期会支持) c).不适合从amoeba