|
| 出处:21ic 时间: 2007-09-30 |
|
richardvip 发布于 2007-9-29 10:50:00 我现在在使用ARM 44B0开发,程序是用C语言写的,是基于硬件的软件,我想问一下各位高手,这样的话C的库函数可以使用吗,我如何知道哪些库可以使用哪些不可以,先谢谢了,之前我使用time.h中的localtime函数想看一下程序执行需要多长时间,结果每次执行程序,结果都不对,还请各位高手执教,先谢谢了
dld2 发布于 2007-9-29 12:54:00 和标准输入输出设备打交道的printf、getch之类。据说可以重定向。 使用malloc要建立堆。 使用文件要有文件系统。 图形库之类当然更不行了。 time。h中的也需要硬件来支持,库本身解决不了。
所以,一般我只用字符串库和数学库,其他的要自己做。
wangkj 发布于 2007-9-30 8:37:00 运行库支持啥函数,你就能用啥函数。
dld2 发布于 2007-9-30 9:31:00 在PC环境,标准输入是PC键盘,标准输出是显示器。 在使用ARM提供的调试工具进行调试时,通过semihost机制,标准输入输出被定向到主机电脑上的调试工具程序。 实际运行在目标板时,你有自己的输出硬件。你可以自定义标准输入输出的目标,例如通过UART连接到主机上的超级终端。 方法是:在你的代码中重写fputc和fgetc这两个函数,通过UART发送和接收一个字符。 而fputc是支持printf的底层函数。 这样,printf这样的标准库函数应该就被重定向到串口了。
但是,很多时候我们不这麽干。而是重新编写类似标准库函数的函数,实现类似的功能。
wangkj 发布于 2007-9-30 9:37:00 如果是有os的,os层就把这些搞定了。
dld2 发布于 2007-9-30 9:44:00 首先你的目标板硬件要有RTC器件。 然后,基于对RTC硬件的编程,自定义函数来实现获取系统时间的功能。 如果想调用标准库函数来获取系统时间,大概重写_sys_time之类的函数就可以了。
gangdou 发布于 2007-9-30 10:16:00 下了.谢谢..
richardvip 发布于 2007-9-30 13:48:00 好当面请教您
dld2 发布于 2007-9-30 13:56:00 “您”不敢当。一起学习。 我给你发个站内短信。
richardvip 发布于 2007-9-30 14:02:00 我把我的邮箱给您,您给我发个email好了,行吗,richardming82@163.com
|
| 【关闭】 【打印】 |
|
|
|
|