搜索
bottom↓
回复: 35

[stm8]教你如何在stvd中生成lib文件,好处你懂的~

[复制链接]

出0入0汤圆

发表于 2013-1-26 17:13:25 | 显示全部楼层 |阅读模式
方法是我自己看cosmic的手册找出来的, 另有两条cmd批处理指令也是我写的^_^

1. 用stvd打开你的工程文件,在工程上点右键选settings...
2. 右侧的选项卡选择到Post-Build,在下方文本框中新粘贴下面三行内容
cmd /c echo # files for the libc library >$(OutputPath)list_obj.txt
cmd /c for /f "tokens=* delims= " %i in ('dir /b $(OutputPath)*.o') do @echo $(OutputPath)%i >>$(OutputPath)list_obj.txt
clib -ci $(OutputPath)list_obj.txt $(OutputPath)$(TargetSName).lib


再编译一次就会在目标目录生成 整个工程的.o文件了, 添加方式是在 选项卡的Linker项中,找到Objects/Libraries,在此添加生成的lib文件即可

要注意的是, 使用时, 中断向量表文件 stm8_interrupt_vector.c, 请不要删除,这个是在lkf文件中绝对定位的,必须要.o文件才行

ps. 如果win7 win8之流运行不了cmd别问我为什么,问微软, 我只在XP中测试过

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2013-1-28 12:54:11 | 显示全部楼层
今天现在坛里面搜索,没有,百度谷歌没有解决的。原来已经有好东西了。

出0入0汤圆

 楼主| 发表于 2013-1-28 12:56:29 | 显示全部楼层
zhonggp 发表于 2013-1-28 12:54
今天现在坛里面搜索,没有,百度谷歌没有解决的。原来已经有好东西了。

谢谢帮顶...我发的贴向来很冷...

做的stvd下集成的mapinfo用来显示 flash, ram ,stack占用量的软件,也是关注的人不多...stm8按理应该挺火的, 不知道为啥

出0入0汤圆

发表于 2013-1-28 12:58:21 | 显示全部楼层
你这个怎么选择指定的文件编译lib呢?如果我要2个或者3个文件合成一个lib

出0入0汤圆

发表于 2013-1-28 13:03:23 | 显示全部楼层
这个我正在用,很不错的。可能有些人不在乎这个关于用了多少内存的问题。前段时间刚开始做STM8,看了很多你的帖子,对我们新人来说正的都很不错。

出0入0汤圆

 楼主| 发表于 2013-1-28 13:03:35 | 显示全部楼层
我这是自己搜索全部.o文件生成列表文件,再编译成lib

如果你只是想编译个别的几个.o文件,那么文件名肯定是知道的了

那只要一行命令即可, 不需要cmd那两行了
clib -c $(OutputPath)$(TargetSName).lib  $(OutputPath)文件1.o $(OutputPath)文件2.o ...在些添加新的.o文件,用空格分开

出0入0汤圆

 楼主| 发表于 2013-1-28 13:03:58 | 显示全部楼层
zhonggp 发表于 2013-1-28 12:58
你这个怎么选择指定的文件编译lib呢?如果我要2个或者3个文件合成一个lib


我这是自己搜索全部.o文件生成列表文件,再编译成lib

如果你只是想编译个别的几个.o文件,那么文件名肯定是知道的了

那只要一行命令即可, 不需要cmd那两行了
clib -c $(OutputPath)$(TargetSName).lib  $(OutputPath)文件1.o $(OutputPath)文件2.o ...在些添加新的.o文件,用空格分开

出0入0汤圆

发表于 2013-1-28 13:06:02 | 显示全部楼层
嗯了解了,就是个内嵌的批处理

出0入0汤圆

发表于 2013-1-28 13:21:19 | 显示全部楼层

mapinfo我一直在用,向楼主学习

出0入0汤圆

发表于 2013-1-28 13:25:59 | 显示全部楼层
在STVD+COSMIC中有个关键字@eeprom,使用STM8L152C6芯片时,能正常读,确不能写,已经解锁。提示libm.sm8没有定义_FLASH_NCR2,找了下STM8L152的芯片手册,根本就没有这个寄存器,楼主知道怎么解决吗?

出0入0汤圆

 楼主| 发表于 2013-1-28 13:41:25 | 显示全部楼层
EasyEagle 发表于 2013-1-28 13:25
在STVD+COSMIC中有个关键字@eeprom,使用STM8L152C6芯片时,能正常读,确不能写,已经解锁。提示libm.sm8没 ...

@eeprom能不用就不用吧...自己操作更灵活些

这个我试下来,总是在重新上电后被 清零, 得用不自动清零的启动文件, 但很多时候定义变量却需要复位后清零...

所以我只在stm8s上测试过这个@eeprom,没真正用过

出0入0汤圆

发表于 2013-1-28 13:44:38 | 显示全部楼层
自己操作虽然灵活,但不如自动分配方便,尤其是在结构比较复杂或者地址改动比较大的时候

出0入0汤圆

 楼主| 发表于 2013-1-28 13:52:23 | 显示全部楼层
EasyEagle 发表于 2013-1-28 13:44
自己操作虽然灵活,但不如自动分配方便,尤其是在结构比较复杂或者地址改动比较大的时候 ...

我教你一个方法,

定义一个大的结构体,全部eeprom的变量都在此定义

typedef struct
{
    char a;
    int b;
    ...
} EEP_VAR;

EEP_VAR EEP @0x4000; //好像是这个地址吧,有点忘了...太久没直接写地址了,不同芯片还可能不同,具体看手册好了

这样就OK了

出0入0汤圆

发表于 2013-1-28 13:54:22 | 显示全部楼层
谢谢楼主,受教了!

出0入0汤圆

发表于 2013-1-28 17:54:28 | 显示全部楼层
谢谢楼主的mapinfo,一直在用,你的lib生成方法,不知道能否跨平台(编译器)不?试下先

出0入0汤圆

发表于 2013-6-6 21:56:49 | 显示全部楼层
这个必须要收藏!
这么好的东西点击率也这么高。为啥就没几人回复呢。
看来这个坛子里面水贴的回帖率远高于技术贴呀。。。。

出0入0汤圆

发表于 2013-6-6 22:28:22 | 显示全部楼层
俺是小白
生成lib有什么好处啊

出0入0汤圆

发表于 2013-7-20 23:03:02 来自手机 | 显示全部楼层
楼主,小弟在使用你生成静态库的方法时,遇到了点问题:虽然加上clib这条指令,但好像执行的还是link动作,编译后提示找不到main函数。另外如果要生成的库中调用一些外部函数,我只做声明可以吗?比如说一些和硬件相关的底层函数,我只声明一下并调用,函数实体在库外边实现。请赐教!

出0入0汤圆

 楼主| 发表于 2013-7-23 08:37:29 | 显示全部楼层
kingjason2009 发表于 2013-7-20 23:03
楼主,小弟在使用你生成静态库的方法时,遇到了点问题:虽然加上clib这条指令,但好像执行的还是link动作, ...

clib只是生成lib用的, 如何使用请看完...少年不要急躁

出0入0汤圆

发表于 2013-7-23 13:06:59 | 显示全部楼层
楼主,用你的方法我没调通,不过借用你的命令行我写了个批处理,可以生成库,你帮忙看看有没有问题。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2013-7-29 10:04:57 | 显示全部楼层
下载用了一个stvd下集成的mapinfo用来显示 flash, ram ,stack占用量的   诗诺比 2011年03月24日 不知道是不是楼主写的 谢谢了

出0入0汤圆

发表于 2014-3-5 23:08:15 | 显示全部楼层
MARK                                            

出0入0汤圆

发表于 2014-3-6 12:43:34 | 显示全部楼层
MARK        

出0入8汤圆

发表于 2014-5-17 08:28:00 | 显示全部楼层
这个必须要收藏!

出0入0汤圆

发表于 2014-5-17 08:59:05 | 显示全部楼层
用得到,多谢楼主。

出0入0汤圆

发表于 2014-5-17 14:51:01 来自手机 | 显示全部楼层
收藏了。

出0入0汤圆

发表于 2014-5-17 15:07:24 | 显示全部楼层
不错,顶起!mark……

出0入0汤圆

发表于 2014-8-20 16:10:55 | 显示全部楼层
俺是小白
同问:
生成lib有什么好处啊

出0入0汤圆

发表于 2014-8-21 09:44:04 | 显示全部楼层
谢谢分享

出0入0汤圆

发表于 2014-8-22 11:52:08 | 显示全部楼层
学习资料

出0入0汤圆

发表于 2015-1-31 09:00:25 | 显示全部楼层
好东西,谢谢分享了!

出0入0汤圆

发表于 2015-3-28 11:49:49 | 显示全部楼层
谢谢了,挺好用的。                                 

出0入0汤圆

发表于 2015-3-31 11:16:52 | 显示全部楼层
保存一下,谢谢

出0入0汤圆

发表于 2016-6-1 10:00:28 | 显示全部楼层
果然很有用,多谢LZ,高手

出0入0汤圆

发表于 2017-10-21 16:54:59 | 显示全部楼层
没有用过STVD生成lib,自己做了遥控加密解密算法,为了不让其他工程师直接看到算法内容所以要打包成lib给其他人使用,谢谢楼主帖子

出0入0汤圆

发表于 2020-9-1 09:48:45 | 显示全部楼层
stm8_interrupt_vector.c文件,在用调用的lib文件里面,要怎么用,我在linker里面添加了lib(里面只能显示.o的,必须下拉菜单选全部文件浏览),编译还是找不到啊?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-27 11:19

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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