STM 8 регистрационные адреса - PullRequest
1 голос
/ 12 февраля 2020

Мой вопрос связан с тем, как микроконтроллеры STM8 решают проблемы. Может быть, я что-то упустил, я написал небольшую программу, где проблема существует. Странно то, что на моем компьютере он отличается от MCU stm8.

#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;
}

Вывод этой функции на моем компьютере соответствует ожидаемым адресам.

output:

Адрес вне функции: 0x1001

Адрес внутри функции: 0x1001

выход на STM8 mcu:

Адрес вне функции: 0x0110

Адрес внутри функции: 0x0110

Поэтому мой вопрос: почему это происходит, где это происходит и если я пишу в START_ADDRESS? зарегистрироваться это запись в 0x1001 или 0x0110? Может случиться так, что printf в обеих системах немного отличается.

...