完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
你好
我在STM8L051F3(8K)上使用8K限制IAR Kickstart编译器 我正在使用EEPROM并获得以下3个链接器错误 错误[Li005]:没有''__eeprom_program_byte''的定义[从eeprom_util.o(dlstm8smn.a)引用] 错误[Li005]:没有''__eeprom_wait_for_last_operation''的定义[从eeprom_util.o(dlstm8smn.a)引用] 错误[Li005]:没有''__eeprom_program_long''的定义[引自eeprom_util.o(dlstm8smn.a)] 功能不是我的。它们是IAR库函数。 Kickstart编译器是否支持EEPROM? EEPROM是否需要特殊的包含文件? 我已经扫描了General和Linker选项并更改了一些设置但无济于事。 有什么建议么? 谢谢 安德烈 以上来自于谷歌翻译 以下为原文 Hi I'm using the 8K limited IAR Kickstart compiler on the STM8L051F3 (8K) I'm using EEPROM and get the following 3 Linker errors Error[Li005]: no definition for ''__eeprom_program_byte'' [referenced from eeprom_util.o(dlstm8smn.a)] Error[Li005]: no definition for ''__eeprom_wait_for_last_operation'' [referenced from eeprom_util.o(dlstm8smn.a)] Error[Li005]: no definition for ''__eeprom_program_long'' [referenced from eeprom_util.o(dlstm8smn.a)] The functions are not mine. They are IAR library functions. Does the Kickstart compiler support EEPROM? Is there a special include file needed for EEPROM? I've scanned through the General and Linker options and changed a few settings but to no avail. Any suggestions? Thanks Andre |
|
相关推荐
5个回答
|
|
你好
''错误[Li005]:没有''__eeprom_program_byte'的定义 ''功能不是我的。它们是IAR库函数。'' 极不可能来自IAR! IAR仅提供编译器和标准库(ed stdio.h)。 您需要从ST获取这些库 以上来自于谷歌翻译 以下为原文 Hi ''Error[Li005]: no definition for ''__eeprom_program_byte'' ''The functions are not mine. They are IAR library functions.'' Extremely unlikely to be from IAR! IAR only provide the compiler and standard libraries (ed stdio.h). You need to get these libraries from ST |
|
|
|
你好
我没有使用ST的任何外围驱动程序,所以它与它们中的任何一个都无关。 看''引自eeprom_util.o(dlstm8smn.a)'', 我会说IAR在他们的库dlstm8smn.a中有一个eeprom_util.o对象链接 dlstm8smn.a的“mn”部分代表中等和正常,“正常”可能是“满” 如果Project Options-> General-> Library更改为''full''。其他选项包括none或custom。媒体涉及到内存大小......我想。 我试过改变这些选项但没有效果。 就像IAR编译器库不完整一样,因此Kickstart支持EEPROM的问题。 谢谢 安德烈 以上来自于谷歌翻译 以下为原文 Hi I'm not using any of the peripheral driver from ST so it's not related to any of them. Looking at ''referenced from eeprom_util.o(dlstm8smn.a)'', I would say that IAR have an eeprom_util.o object link inside their library dlstm8smn.a The ''mn'' part of dlstm8smn.a stands for medium and normal where ''normal'' could be ''full'' if the Project Options->General->Library is changed to ''full''. Other option include none or custom. Medium relates to the memory size...I think. I've tried changing these options but with no effect. It is as though the IAR compiler library is incomplete, hence the question does the Kickstart support EEPROM. Thanks Andre |
|
|
|
你好
似乎IAR已经将这3个功能外部化了。 这取决于用户实现它们。 如果他们能在某个地方提到这件事会很好。 我正在为FLASH提供ST外设库,因为它们具有这3个功能,而且还有更多我不需要的功能。 (曲折和臃肿) 到目前为止它还没有编译...... 谢谢 安德烈 以上来自于谷歌翻译 以下为原文 Hi It seems that IAR have made these 3 functions external. It's up to the user implement them. Would be nice if they could mention this somewhere. I'm pulling in the ST peripheral library for FLASH as they have these 3 functions and a whole lot more that I don't need. (convoluted and bloated) So far it does not compile... Thanks Andre |
|
|
|
你好
''看''引自eeprom_util.o(dlstm8smn.a)'', 我会说IAR在他们的库dlstm8smn.a中有一个eeprom_util.o对象链接'' 你是对的。当我查看IAR网站时,STM8编译器确实对STM8中的EEPROM有一些支持。 我很抱歉,但是没有与IAR和STM8做过任何工作,我不太了解你的帮助。 ''我正在拉入ST外围库中的FLASH,因为他们拥有这3个功能,还有更多我不需要的功能。 (曲折和臃肿)'' 不要担心未使用的功能(膨胀)。然后,链接器可以删除,有一个编译器和链接器开关来执行此操作。有一个编译器开关来编译每个函数,以便它可以在.o中分离。有一个链接器开关告诉链接器只放入使用的函数。 以上来自于谷歌翻译 以下为原文 Hi ''Looking at ''referenced from eeprom_util.o(dlstm8smn.a)'', I would say that IAR have an eeprom_util.o object link inside their library dlstm8smn.a'' Yes, you are right. When I looked at the IAR web site, the STM8 compiler does indeed have some support for the EEPROM in the STM8. I am sorry but having not done any work with IAR and STM8 I do not know enough to help you. ''I'm pulling in the ST peripheral library for FLASH as they have these 3 functions and a whole lot more that I don't need. (convoluted and bloated)'' Do not worry about unused functions (bloat). The linker can remove then, there is a compiler and linker switch to do this. There is a compiler switch to compile each function so that it can be seperated in the .o There is a linker switch to tell the linker to only put in functions that are used. |
|
|
|
谢谢回复,
我放弃了使用ST外设驱动程序。这么多文件和编译错误。 一旦我理解了问题,编写自己的函数就更容易了。 当使用例如Raisonance Compiler时,您可以简单地将一个字节写入EEPROM *地址=数据; ....其中address是指向EEPROM存储器的指针 while(...测试FLASH状态寄存器....编程不完整); 似乎如果你在IAR编译器中应用上面的第一行,他们就会调用该函数 __eeprom_program_byte后跟__eeprom_wait_for_last_operation (我无法确认这一点,因为Kikstart编译器不允许查看汇编程序文件) 我不使用4字节(字)写入,所以我没有在__eeprom_program_long函数中放置代码。只是一个虚拟函数,让链接器保持愉快。 我利用了ST外设驱动程序中的代码并简化了它,摆脱了所有的ENUMS和#defines。我保持超时,以防循环卡住。 它似乎工作。 如果要使用APP笔记的类型,那将是很好的。 谢谢 安德烈 以上来自于谷歌翻译 以下为原文 Thanks for the reply, I gave up on using the ST peripheral drivers. So many files and compile errors. It was easier to write my own functions to do this once I understood the problem. When using for example the Raisonance Compiler you can simply write a byte to EEPROM by *address = data; ....where address is a pointer to EEPROM memory while( ...test FLASH status register....programming not complete); It seems that if you apply the first line above in an IAR compiler they call the function __eeprom_program_byte followed by __eeprom_wait_for_last_operation (I can't confirm this as the Kikstart Compiler does not allow one to look at the assembler files) I don't use a 4 byte (word) write so I placed no code in the __eeprom_program_long function. Just a dummy function the keep the linker happy. I made use of the code from the ST peripheral driver and simplified it, got rid of all the ENUMS and #defines. I kept the timeout in case while loop gets stuck. It seems to work. It would have been nice to have to type of APP note to work from. Thanks Andre |
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2632 浏览 1 评论
3208 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1783 浏览 1 评论
3607 浏览 6 评论
5987 浏览 21 评论
939浏览 4评论
1315浏览 4评论
在Linux上安装Atollic TRUEStudio的步骤有哪些呢?
582浏览 3评论
使用DMA激活某些外设会以导致外设无法工作的方式生成代码是怎么回事
1302浏览 3评论
1357浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 09:28 , Processed in 1.702845 second(s), Total 83, Slave 68 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号