野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 19033|回复: 2

[求助] 6ULL裸机串口程序问题?

[复制链接]

位置相关码这么坑

发表于 2021-7-13 00:25:35 | 显示全部楼层 |阅读模式
本帖最后由 CSWZH8 于 2021-7-13 00:38 编辑

/*提示字符串*/
uint8_t txbuff[] = "hello world\r\n";
int main()
{
    uint8_t ch; //用于暂存串口收到的字符

    uint8_t *p = txbuff;
    system_clock_init();

    uart_init();
    UART_WriteBlocking(UART1, &p, 4);       //打印hex  : 34 04 40 80,和生成的map文件相对应,这个地址值应该是没错的
    UART_WriteBlocking(UART1, txbuff, 13); // FF FF FF FF FF FF FF FF FF FF FF FF FF
    UART_WriteBlocking(UART1, *p, 13);
    // FF FF FF FF FF FF FF FF FF FF FF FF FF


    while (1)
    {
        UART_ReadBlocking(UART1, &ch, 1);
        UART_WriteBlocking(UART1, &ch, 1);
    }

    return 0;
}





代码如上,自己搭建的工程,打印出来的字符串不符合预期! 感觉像是因为调用了位置相关码,寻址错误。
因为把txBuf定义在main函数里面时打印是OK的。
但是我的程序连接地址确实是80002000,不知道哪里出了问题


回复

使用道具 举报

 楼主| 发表于 2021-7-13 00:45:52 | 显示全部楼层
有新的发现,将txbuf定义为const类型,则打印就OK了,很奇怪!
回复 支持 反对

使用道具 举报

发表于 2021-10-8 07:59:37 | 显示全部楼层
CSWZH8 发表于 2021-7-13 00:45
有新的发现,将txbuf定义为const类型,则打印就OK了,很奇怪!

我也发现位置相关码确实有问题,如果把全局变量,初值值为非0的,结果都不对,或者会直接死机,现在还不知道怎么处理。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-21 20:01 , Processed in 0.038062 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表