打印

STM8 在是怎么出入栈的?

[复制链接]
1634|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
看了一下printf的源码,想移植到stm8, 不用stdio,那个标准的东西太占flash,从linux串扣出printf
的源代码,在avr上已调通了,直接copy到stm8上用时,发现出问题了,第个参数指针或变量找的不对

在调用printf()时,传入fmt串和可变参数,运行printf根据第个参数fmt的长度,算出之后的参数。

void main(void)
{
  char str[] = {"123456789"};
  int i;
   uartinit();
   while(1)
   {
     i++;
    myprintf("I am stm8:%s, %d\n", str, i);
   }

不知道stm8有函数时是怎么入的栈。但应该包含"I am stm8:%s, %d\n"的指针, str指针和i的值吧?
但是从栈的看不是这入的,或是我没有看明白?



第一个参数是对的,包含"I am stm8:%s, %d\n"的指针 0x0084a2  共3个字节的指针

可以第二个,第三个是怎么入栈的?
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:worldsing.cnblogs.com

14

主题

346

帖子

0

粉丝