keil中printf函数及bin文件生成问题

以下是这几天遇到的问题及解决方法,希望能帮到大家。

1、我使用的是keil 4,最近在学习数据结构,想把书本中的代码全部运行一遍,因为学习最重要是实践,只是看似乎已经看懂了但是真正使用的时候恐怕还是不会使用。所以想在keil中运行书本中示例代码,代码如下:

int main()
{
int i=39;
printf(“%d\n”,i);
printf(“%d\n”, &i);
}

    将代码敲入keil中,我新建了工程,编译时总是通不过,提示有错误。后来上网查询才了解到其中奥秘。在keil中printf 默认是向串口中发送数据的,所以,如果应用该函数,必须先初始化串口,否则可能引起死机的情况。所以不能向之前学习C语言时使用Turbo C工具,直接敲入代码,点击运行弹出dos窗口。

    可以使用VC++、C++ Builder等工具进行代码的调试,我使用的是C++ Builder 6.0,还是比较方便的,就像上学时将代码写入,编译运行即可,也会弹出DOS窗口,方便查看。

2、最近也在编写STM32单片机IAP程序,想实现在应用的更新,程序改动时就不需要每次都使用Debugger烧录了。我现在的方法是参考的STM32官方例程,使用windows的超级终端。使用超级终端进行APP更新时,需要使用bin文件更新。后来在网上搜索的方法:

       打开keil->Options for target->user->run #1中输入fromelf.exe --bin -o ./obj/sty11.bin ./obj/sty11.axf
sty11.axf中sty11是自己的工程名字,axf是keil自己生产的文件,fromelf.exe是keil自带的转换软件,使用--bin -o 命令生成./obj/sty11.bin文件。./obj是相对工程路径名称。
       使用以上方法的确能生成bin,但是,如果你使用的破解版的keil,就有可能生成的bin文件不可用,可以用记事本打开查看或者使用 hexwork shop软件打开查看bin文件是否正确。如果bin文件不正确,自然IAP即便将APP写入,也是写入的错误的APP,程序不能正常运行。如果bin文件不正确,可以在网上下载hex转bin的工具,使用工具转换后也要查看是否转换正确

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

spdian

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值