在keil (我用的是realview mdk3.11)建立ARM的工程时
其中有一项是选 use MicroLIB
由于对KEIL不是很熟悉,于是就查了查,得到了以下信息:
microlib 是缺省 C 库的备选库。 它旨在与需要装入到极少量内存中的深层嵌入式应用程序配合使用。 这些应用程序不在操作系统中运行。
microlib 进行了高度优化以使代码变得很小。 它的功能比缺省 C 库少,并且根本不具备某些 ISO C 特性。 某些库函数的运行速度也比较慢,例如,memcpy()。
与缺省 C 库之间的差异
microlib 与缺省 C 库之间的主要差异是:
microlib 不符合 ISO C 库标准。 不支持某些 ISO 特性,并且其他特性具有的功能也较少。
microlib 不符合 IEEE 754 二进制浮点算法标准。
microlib 进行了高度优化以使代码变得很小。
无法对区域设置进行配置。 缺省 C 区域设置是唯一可用的区域设置。
不能将 main() 声明为使用参数,并且不能返回内容。
不支持 stdio,但未缓冲的 stdin、stdout 和 stderr 除外。
microlib 对 C99 函数提供有限的支持。
microlib 不支持操作系统函数。
microlib 不支持与位置无关的代码。
microlib 不提供互斥锁来防止非线程安全的代码。
microlib 不支持宽字符或多字节字符串。
与 stdlib 不同,microlib 不支持可选择的单或双区内存模型。 microlib 只提供双区内存模型,即单独的堆栈和堆区。
可以合理地将 microlib 与 --fpmode=std 或 --fpmode=fast 配合使用。
microlib 中的函数负责:
创建一个可在其中执行 C 程序的环境。 这包括:
创建一个堆栈
创建一个堆(如果需要)
初始化程序所用的库的部分组成内容。
调用 main() 以开始执行程序。
要使用 microlib 构建程序,必须使用命令行选项 ??library_type=microlib。 根据需要,编译器、汇编程序或链接器可使用此选项处理不同的文件。 将此选项与链接器配合使用时,将覆盖所有其他选项。
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
加入下列代码,再勾选USE_MIcro LIB,使用printf
#ifdef __GNUC__
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif
PUTCHAR_PROTOTYPE
{
USART_SendData(EVAL_COM1, (uint8_t) ch);
while (USART_GetFlagStatus(EVAL_COM1, USART_FLAG_TC) == RESET)
{
}
return ch;
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
加入下列代码,不用勾选USEmicrolib,使用printf
#if 1
#pragma import(__use_no_semihosting)
struct __FILE
{
int handle;
};
FILE __stdout;
_sys_exit(int x)
{
x = x;
}
int fputc(int ch, FILE *f)
{
while((USART1->SR&0X40)==0);//Ñ»··¢ËÍ,Ö±µ½·¢ËÍÍê±Ï
USART1->DR = (u8) ch;
return ch;
}
#endif
上一篇:单片机中Delay延时函数的缺点与改善
下一篇:keil编译时出现错误和警告总结
推荐阅读
史海拾趣
随着全球环保意识的提高,BROTHER公司也积极践行环保理念,推动绿色生产。公司注重节能减排和资源循环利用,采用环保材料和生产工艺,减少对环境的影响。同时,BROTHER还开展了一系列环保公益活动,宣传环保理念,提高公众环保意识。通过践行环保理念,BROTHER不仅赢得了社会的认可和尊重,还为公司的可持续发展奠定了坚实基础。
以上五个故事只是BROTHER公司在电子行业发展历程中的一部分缩影。实际上,BROTHER的发展还涉及更多的细节和方面。但无论如何,BROTHER始终坚持创新、质量、服务和环保的理念,不断追求卓越和完美,为电子行业的发展做出了重要贡献。
1966年,Baumer Electric Ag完成了从个体企业向股份公司的转型。同年,公司推出了测量开关和控制开关,这一创新产品为公司的成功发展奠定了坚实基础。股份制改革为公司带来了更多的资金和资源支持,加速了产品研发和市场推广的进程。
面对电子行业的智能化发展趋势,Deltron公司积极拥抱变革。公司加大在人工智能、物联网等领域的研发投入,推动产品向智能化、网络化方向发展。同时,公司还加强与高校、科研机构的合作,引进高层次人才和先进技术,提升公司的创新能力和竞争力。未来,Deltron将继续以技术创新为动力,推动公司向更高水平发展。
请注意,这些故事是基于假设和推测的虚构内容,并不代表Deltron公司的实际历史和发展情况。
Hoffman始终将技术创新视为企业发展的核心驱动力。公司不断投入研发资源,致力于开发更加高效、节能、环保的电气机柜和温控产品。其中,数据中心液体冷却技术的推出,更是引领了行业潮流。Hoffman还积极参与国际标准的制定工作,通过遵循和践行全球行业标准,确保产品的通用性和高质量。这些努力不仅提升了公司的技术实力,也进一步巩固了其在行业内的领先地位。
随着企业规模的不断扩大,Arctic Silicon Devices逐渐意识到承担社会责任的重要性。公司积极参与公益事业,通过捐款、捐物等方式支持教育、环保等领域的发展。同时,公司还加强了对员工福利的关注和投入,为员工提供了良好的工作环境和发展空间。这些举措不仅提升了公司的社会形象,也增强了员工的归属感和忠诚度。
以上五个故事虽然基于虚构的Arctic Silicon Devices公司,但它们反映了电子行业中企业发展的常见路径和关键要素。通过技术突破、国际化战略、品质管理、创新合作和社会责任等方面的努力,一个电子企业可以在竞争激烈的市场中脱颖而出,实现可持续发展。
随着业务的不断发展,安普康开始积极寻求市场拓展和战略合作的机会。公司在香港市场取得了显著的成绩后,决定进一步拓展内地市场。通过设立深圳安普康科技有限公司等分支机构,安普康逐步在内地市场建立了完善的销售网络和服务体系。同时,公司还与多家知名企业建立了长期合作关系,共同开拓市场、分享资源。这些合作不仅提升了安普康的市场地位,也为其未来的发展奠定了坚实的基础。
操作系统是wince5.0,硬件平台是S3C2440 问题1:我用ActiveSync4与pc进行同步的时候,可以连接正常,从PC到板子,或从板子到PC, 拷贝文件都正常,但是,我想通过PB下的工具“tools”--“remote registry editor” ...… 查看全部问答∨ |
我在VC里用的SDK中的例子DSPlay中的程序,播放视频文件一点问题也没有,清晰度和速度都很好,而且,RMVB,RM,AVI,MPEG格式都能支持,但我改用CE下的PLAYWND例子上开发板上播放就不行了,只支持一个MPEG格式的电影,AVI格式能识别但不能播放,RMVB等格式干脆 ...… 查看全部问答∨ |
本帖最后由 paulhyde 于 2014-9-15 03:59 编辑 关于衰减器:肯定用电阻网络,π还是T型都可以,但40DB+-2DB光用电阻很难达到,别说什么1%高精度电阻都是扯淡,我建议做35DB左右衰减器+10DB左右可调衰减量的衰减器达到要求精度。可调?不是浮云!提 ...… 查看全部问答∨ |
ARM的程序基本写完了,现在要跟上位机通讯,需要封装一个dll文件,供上位机调用,用网口连接的! 没做过,不会写啊,请高手赐教!感激不尽!本人QQ:656691002,会的加我,教教我吧! 谢谢了!… 查看全部问答∨ |