c - STM 8 寄存器地址
问题描述
我的问题与 STM8 微控制器如何解决问题有关。也许我错过了一些东西,我写了一个存在问题的小程序。奇怪的是,它在我的计算机上与 stm8 MCU 不同。
#include <stdio.h>
#define START_ADDRESS *(unsigned char*)0x1001
void printAddress(unsigned char * address){
printf("The address inside the function: %p\n",address);
}
int main()
{
printf("The address outside function: %p\n",&START_ADDRESS);
printAddress(&START_ADDRESS);
return 0;
}
我的计算机上此函数的输出与预期的地址匹配。
输出:
函数外地址:0x1001
函数内部地址:0x1001
STM8 单片机上的输出:
函数外地址:0x0110
函数内部地址:0x0110
所以我的问题是它为什么要这样做,它发生在哪里,如果我写入 START_ADDRESS 寄存器,它是在 0x1001 还是 0x0110 写入?可能只是两个系统上的 printf 略有不同。
解决方案
推荐阅读
- bash - 带有空格的 Bash 输入字符串
- bash - 根据用户输入选择的 Bash 脚本
- database - 如何查找谁从前端(Infor WM 应用程序)数据库(oracle 11g)中删除了数据
- codeigniter - 在codeigniter中调用null的成员函数
- caching - Mule 4中如何获取缓存统计数据
- php - OpenTok session_id 没有在 aws 服务器中创建,而在我的本地服务器上它工作正常
- c# - 尝试在 Unity C# 中解析 JSON 数组,但它返回 null
- javascript - 如何在vue中禁用基于子组件表单验证的按钮
- windows - 我可以使用什么独特的环境变量来获取 32 位和 64 位 Windows 下的 32 位程序文件文件夹?
- c++ - 指向向量和向量的指针中的循环迭代