在8位单片机中使用Google Protobuf

发布者:technology1最新更新时间:2017-02-07 来源: eefocus关键字:8位单片机  Google  Protobuf 手机看文章 扫描二维码
随时随地手机看文章

前言

谷歌的Protobuf的网址:https://developers.google.com/protocol-buffers/?csw=1

按照国内情况最好翻墙出去看一下.

目前Protobuf的情况是主要支持Java, C++, or Python.   纯C的,最新的版本不支持,貌似有一个好久之前支持的版本但不再更新.

支持C的Protobuf地址是:https://github.com/protobuf-c/protobuf-c 这个版本貌似只能在linux下进行编译生产打包工具.windows没有看见有相应的编译工程.

使用方法,大家可以参考示例 https://code.google.com/p/protobuf-c/wiki/Examples 这个也是需要翻墙的.


方法

1、通过支持生成纯C工具,将自己写的脚本文件生成.c和.h文件可以参考以下方法

http://blog.csdn.net/menggucaoyuan/article/details/16107201

2、将生成的.c及.h包含到自己的工程项目中还要加上protobuf-c.c及protobuf-c.h文件

3、编译一下,看编译器提示什么错误,然后一步一步能解决掉特殊编译器中的问题

可能需要修改protobuf里面的代码

举例来说,

1、我用VS2008的VC++使用与IAR相同的文件,像inline这个关键字VC++不认,需要调整为__inline

2、parse_packed_repeated_member的void *array = *(void **) member + siz * (*p_n);修改为

 char*array = *(char**) member + siz * (*p_n);//modify by lanshuguang

3、修改一些变量定义为C标准的规范, 如把变量的定义放到函数的开头等 (有些编译器不会有如此问题,所以得看编译器,像IAR FOR STM8S不会有问题)

4、经过步骤3的处理,等到程序没有任何error时,请留意warning的信息

比如,  

a. 8位单片机的地址寻址问题,毕竟protobuf设计是在32位的基础上考虑的

b. 如对int的定义问题,PC及一些编译器会把int定义为32位,而在IAR会为16位

c. 理解unsigned在C定义一个变量的意思,其实为unsigned int

建议

在单片机中使用protobuf这个东西时,尽量不要将变量定义成enum或者一些跟int类型相关的,这样能够尽可能少地触发因为8位单片机寻址与32位CPU或芯片寻址的差异。

其他该注意的地方,需要多根据单片机的特性来考虑关注.


关键字:8位单片机  Google  Protobuf 引用地址:在8位单片机中使用Google Protobuf

上一篇:Keil5.15使用GCC编译器链接.a库文件
下一篇:IAR FOR STM8S 调试信息

推荐阅读最新更新时间:2024-03-16 15:33

专注音质表现 谷歌推出Google Home Max
毫不意外地,在Google Home Mini之后,一款“重量级”的智能音箱产品Google Home Max正式发布。保留Google Assistant智能语音助手的同时,这款产品最大的亮点,在于更优秀的音质,以及多端协同播放。 比Google Home更像一款传统音箱的Max在音质方面有更好的表现。具有软质橡胶支架的Max可以支持横向或纵向放置,更适合多种不同的家具环境。此外,Google Home Max可以实现全自动的音质调节:通过播放声音以及周边环境对声音的反射,自行调整播放效果。 主打音质的同时,Google Home Max支持多设备同步播放。通过Chromecast连接多款设备,能够在多个房间中
[手机便携]
Google与苹果的竞争:汽车操作系统之战
    昨天,已经在全球与苹果车载系统CarPlay厮杀已久的Google汽车操作系统Android Auto正式登陆日本,这个在全球范围内都至关重要的汽车制造国给Google车载系统领域带来了重要的战略意义。   Google昨天在东京召开发布会公布了Android Auto登陆日本的详情,该系统将支持包括奥迪Q7与A4、2016款的本田雅阁以及未知型号的玛莎拉蒂、大众等车型,日产和松下的导航单元也对Android Auto示好,单日本汽车巨头丰田和马自达并没有在其合作名单之中,业界人士认为,Google竞争对手苹果的CarPlay抢先登陆日本,对Android Auto在日本的发展造成了阻碍。    Android和i
[汽车电子]
谷歌不服欧盟裁决上诉,又是八年持久战?
谷歌 近日宣布,已正式对 欧盟 的反垄断裁决提起上诉。 欧盟今年6月曾宣布,由于谷歌在搜索结果中偏袒自家服务 Google Shopping ,决定对谷歌处以24.2亿欧元(约合29亿美元)的罚款。 谷歌当时曾发表声明称,不认同欧盟的该裁决,将考虑提起上诉。今日,谷歌正式对该裁决提起上诉。 欧盟中级法院“综合法院”(General Court)一发言人称,谷歌在上诉文件中并未要求暂时停止执行欧盟的该裁决。 而欧盟一发言人表示,将在法庭上与谷歌据理力争。有业内人士称,对于该上诉案,“综合法院”可能需要几年时间才能给出结果。 业内人士还称,基于英特尔上诉案的结果,谷歌此次上诉的成功率也有所提高。上周,欧盟最高法院“欧洲法院”(
[嵌入式]
英特尔调整Intel Inside战略 结盟Google
3月14日消息,据国外媒体报道,英特尔日前调整了“IntelInside”2007年的营销战略,并于Google达成了现代化的网络营销合作协议。 CRN网站报道,据英特尔文件显示,“IntelInside2007”战略计划将于4月29日正式生效,新计划将从根本上改变英特尔目前的市场营销方式,即与Google达成了网络营销协议。 新计划在合作伙伴如何利用市场营销基金方面给予更多的灵活性。例如,英特尔将向Track2合作伙伴提供所有市场营销经费,而且,市场营销基金可首次被用于在线营销领域等。 此外,合作伙伴还可以利用市场营销基金进行一般性宣传,例如VPro技术或Viiv技术。此前,该计划只限于把营销基金应用在产品广告方面。 至于与Go
[焦点新闻]
便宜芯片与简单AI,Google 打造抛弃式语音识别产品
   Google 工程师PeteWarden在英国ARM研究高峰论坛表示,他希望打造超便宜的语音识别产品,搭载只要50美分的超低价芯片,一个硬币大小的电池,足以维持一年的电力,再搭配简单的人工智能算法,就可以让语音识别产品快速普及。下面就随网络通信小编一起来了解一下相关内容吧。   麻省理工科技评论(MITTechnologyReview)报导,这种超便宜的语音识别芯片可用来生产便宜的对话玩偶,或是简单的家用电器,如可被语音驱动的灯。在工业环境应用,这种芯片可辨识不寻常的声响,或是农田里的蟋蟀。   Warden为 Google 的云端人工智能工具开发行动和嵌入式应用,称为TensorFlow,他在开发过程中发现亚马逊的 AI
[网络通信]
Google或推实时截屏软件 Nexus设备专用
    据Android Police报道,Google正在为新款Nexus设备研发在线支持应用,允许用户实时分享截图,这款应用命名为“Google Support”。 实时分享屏幕截图(图片引自Android Police) 目前只有Nexus设备可以使用(图片引自Android Police)     Google Support允许用户在使用Nexus设备过程中出现问题可以联系科技专家进行解决,目前来看仅限于Nexus设备使用。据悉这款应用会随Android N和两款Nexus设备一起发布。
[手机便携]
谷歌VR不仅仅是外设,I/O大会将有什么大戏码?
谷歌今年将把Android的发展引向更多的方向。这次开发者大会的重头戏如不出意外就是 Android N 了,除此之外还会有自动驾驶汽车、Amazon Echo的竞品以及头戴式VR。 5月18日—5月19日,谷歌Google将在美国加利福尼亚州圣克拉拉县山景城召开Google I/O 2016的开发者大会。尽管离大会召开还有几天,但已经有消息放出说这次大会会有一个新的安卓系统产品——Android VR发布。     这次开发者大会的重头戏如不出意外就是Android的这个下一代系统——Android N了,除此之外还会有自动驾驶汽车(Self-Driving Cars)、Amazon Echo的竞品、Proje
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved