树莓派GPIO控制 —— C语言篇

一. 常用开源工程简介

树莓派内核中已经编译自带了gpio的驱动,我们常通过一些第三方写好的库函数来完成具体的操作,比较常见的操作库函数有:

  1. Python GPIO
    【开发语言】——python
    【简单介绍】——树莓派官方资料中推荐且容易上手。python GPIO是一个小型的python库,可以帮助用户完成raspberry相关IO口操作,但是python GPIO库还没有支持SPI. I2C或者1-wire等总线接口。
    【官方网站】—— https://code.google.com/p/raspberry-gpio-python/
  2. wiringPi
    【开发语言】——C语言
    【简单介绍】——wiringPi适合那些具有C语言基础,在接触树莓派之前已经接触过单片机或者嵌入式开发的人群。wiringPi的API函数和arduino非常相似,这也使得它广受欢迎。作者给出了大量的说明和示例代码,这些示例代码也包括UART设备,I2C设备和SPI设备等。
    【官方网站】—— http://wiringpi.com/
  3. BCM2835 C Library
    【开发语言】——C语言
    【简单介绍】BCM2835 C Library可以理解为使用C语言实现的相关底层驱动,BCM2835 C Library的驱动库包括GPIO. SPI和UART等,可以通过学习BCM2835 C Library熟悉BCM2835相关的寄存器操作。如果有机会开发树莓派上的linux驱动,或自主开发python或PHP扩展驱动,可以从BCM2835 C Library找到不少的“灵感”。
    【官方网站】—— http://www.airspayce.com/mikem/bcm2835/

    . 树莓派GPIO编号方式
  1. 功能物理引脚:
    从左到右,从上到下:左边基数,右边偶数:1-40
  2. BCM:
    编号侧重CPU寄存器,根据BCM2835的GPIO寄存器编号。
  3. wiringpi:
    编号侧重实现逻辑,把扩展GPIO端口从0开始编号,这种编号方便编程。正如图3 WiringPi一栏。

    三. WiringPi GPIO
  1. 说明:
    WiringPi是应用于树莓派平台的GPIO控制库函数,WiringPi遵守GUN Lv3。wiringPi使用C或者C++开发并且可以被其他语言包转,例如python. ruby或者PHP等。
    wiringPi包括一套gpio控制命令,使用gpio命令可以控制树莓派GPIO管脚。用户可以利用gpio命令通过shell脚本控制或查询GPIO管脚。
  2. wiringPi安装
     1)使用GIT工具
    git clone git://git.drogon.net/wiringPi
    cd wiringPi
    ./build
    build脚本会帮助你编译和安装wiringPi

     2)直接下载
    在https://git.drogon.net/?p=wiringPi;a=summary下载最新版本编译使用
    tar xfz wiringPi-xx.tar.gz
    cd wiringPi-xx
    ./build

     3)raspbian使用apt-get安装
    sudo apt-get install wiringpi
  3. 测试:
    wiringPi包括一套gpio命令,使用gpio命令可以控制树莓派上的各种接口,通过以下指令可以测试wiringPi是否安装成功。
    $gpio -v
    $gpio readall #即可出现下面的gpio图
  1. 样例代码:
#include <wiringPi.h>
int main(void)
{
 wiringPiSetup() ;
 pinMode (0, OUTPUT) ;
 for(;;)
 {
  digitalWrite(0, HIGH) ; delay (500) ;
  digitalWrite(0, LOW) ; delay (500) ;
 }
}
  1. 编译运行:
    在树莓派上:
    gcc -Wall -o test test.c -lwiringPi
    sudo ./test

在虚拟机中:
am-linux-gcc -Wall -o test test.c -lwiringPi
sudo ./test

注:
1)IO的编号方式略有不同,采用wiring编码方式。
2)-lwiringPi表示动态加载wiringPi共享库。

四. BCM2835 C Library
下载:
$ wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.35.tar.gz
解压缩:
$tar xvzf bcm2835-1.35.tar.gz
进入压缩之后的目录:
$cd bcm2835-1.35
配置编译:
./configuremake
执行检查:
$sudo make check
安装bcm2835库:
$sudo make install

样例代码

#include < bcm2835.h>
//P1插座第11脚
#define PIN RPI_GPIO_P1_11
int main(int argc, char **argv)
{
  if (!bcm2835_init())
   return 1;

 // 输出方式
 bcm2835_gpio_fsel(PIN, BCM2835_GPIO_FSEL_OUTP);

 while (1)
 {
   bcm2835_gpio_write(PIN, HIGH);
  bcm2835_delay(100);

  bcm2835_gpio_write(PIN, LOW);
  bcm2835_delay(100);
 }
 bcm2835_close();
 return 0;
}

编译运行
gcc -o blink blink.c -lbcm2835
./blink

注:
1)IO的编号方式略有不同,采用BCM编码方式
2)-lbcm2835表示动态加载bcm2835共享库

参考链接:

http://elinux.org/RPi_Low-level_peripherals
http://blog.csdn.net/xukai871105/article/details/23115627

树莓派被曝开春上市,估值高于5亿美元,收入主要来源于生产版权费

获得4500万美元融资后,树莓派又启动了上市计划。

据The Telegraph报道,树莓派(Raspberry Pi)计划明年春天在英国伦敦上市,估值可能比5亿美元还高

现在,树莓派基金会已经从Stifel和Liberum两家机构聘请了专家,为公司提供上市咨询服务。

这也是今年3月树莓派被曝计划上市以来,一个最新的进展。

年初计划IPO,估值4亿美元

据The Telegraph称,早在今年3月,树莓派就已经有相关的上市计划,当时估值在4亿美元左右。

今年疫情期间,树莓派的需求也一直在增加。

在9月融资4500万美元后,树莓派的估值更是“水涨船高”,来到了5亿美元。

树莓派首席执行官、创始人Eben Upton对此表示:

我们一直非常在意,如何让机构筹措资金。9月份融到的4500万美元显然减轻了这种紧迫感,也让我们对未来5年有了更好的规划。

目前,这4500万美元主要被用来开发新产品。

树莓派怎么赚钱的?

树莓派基金会创立于2008年,初衷是为了提升青少年的编程能力

创始人Eben Upton在剑桥大学计算机教书时,发现学生们的编程能力“严重退化”,他便辞职进入美国博通,开始制作一个编程开发平台。

2012年2月29日,第一块树莓派面市。

这块树莓派基于ARM微型电脑主板制作,具备PC所有基本功能,部件全部整合在一张信用卡大小的主板上。

在Linux系统的加持下,树莓派只需要几行代码,就能做出不少好玩的项目。

Eben Upton对此非常自豪:

13年来,树莓派已经向100多个国家卖出了4200多万台设备。去年,我们的销售额更是创下了710万台的历史新高,利润为1140万英镑。

目前,树莓派已经向慈善机构捐款超过3000万英镑(约合人民币2.6亿)。

作为一家“非营利机构”,树莓派究竟是怎么赚钱的呢?

事实上,树莓派的大部分收入来源于版权费用。

这家机构主要做的是设计各种树莓派产品,然后将它们授权给制造商,并从中收取专利费用

不知道明年是不是就能买到树莓派的股票了。

美国FTC宣布:禁止英伟达收购Arm

如今,Arm 技术应用在很多领域。您的Android 手机是基于 Arm 的芯片,备受赞誉的Apple M1 芯片也基于 Arm。这种不断增长的投资组合是英伟达宣布有意收购该公司时引起关注的主要原因之一。

这笔估计为 400 亿美元的交易遭到了欧盟委员会和英国竞争与市场管理局等机构的强烈反对。现在,它面临美国联邦贸易委员会的另一个主要障碍。今天,美国联邦贸易委员会正式宣布将提起诉讼,以停止与 Nvidia Arm 的交易。

声明说:“联邦贸易委员会正在起诉,以阻止历史上最大的半导体芯片合并,以防止芯片集团扼杀下一代技术的创新渠道。” 该组织表示,它非常担心这笔交易可能会在整个芯片组行业创造一种反竞争环境,该行业已经受到了沉重的压力。

FTC 的主要担忧是,英伟达拥有 Arm 将允许前公司获得后公司与其他公司达成的交易和协议。这基本上可以让 Nvidia 提前了解其竞争对手的战略和弱点,并相应地定制其产品。此外,如果它觉得竞争对手获得了太多的优势,它可以控制对 Arm 产品的访问。

谷歌、微软,甚至芯片组制造商高通也都表达了对这笔交易的担忧。

英伟达表示,其对 Arm 的收购应在 2022 年底完成。然而,今天的消息使这看起来不太可能。

声明原文:美国联邦贸易委员会起诉阻止 400 亿美元的半导体芯片合并

美国联邦贸易委员会今天起诉,以阻止美国芯片供应商 Nvidia Corp. 以 400 亿美元收购英国芯片设计供应商 Arm Ltd。半导体芯片为对我们现代经济和社会至关重要的计算机和技术提供动力。拟议的垂直交易将使最大的芯片公司之一控制竞争对手公司赖以开发自己的竞争芯片的计算技术和设计。美国联邦贸易委员会的投诉称,合并后的公司将有手段和动机扼杀创新的下一代技术,包括用于在汽车中运行数据中心和驾驶员辅助系统的技术。

“联邦贸易委员会正在起诉阻止历史上最大的半导体芯片合并,以防止芯片集团扼杀下一代技术的创新渠道,”联邦贸易委员会竞争局局长Holly Vedova说。“未来的技术取决于保持当今竞争激烈的尖端芯片市场。这项提议的交易将扭曲 Arm 在芯片市场的激励措施,并允许合并后的公司不公平地削弱 Nvidia 的竞争对手。FTC 的诉讼应该发出一个强烈信号,即我们将积极采取行动,保护我们的关键基础设施市场免受非法垂直合并的影响,这些合并对未来的创新具有深远的破坏性影响。”

总部位于东京的软银集团旗下的 Arm 不供应或销售成品计算机芯片或设备。它为包括 Nvidia 在内的其他技术公司创建和许可微处理器设计和架构,也就是投诉中说的 Arm 处理器技术。反过来,这些公司依靠 Arm 处理器技术制造计算机芯片,为各种现代计算设备提供动力,从智能手机到平板电脑,再到驾驶辅助系统,再到大型数据中心的计算机。Arm 还提供重要的相关支持和服务。诉状称,Arm 使用行业描述的中立、开放许可方式为其处理器技术提供许可,并且通常被称为半导体行业的“瑞士”。

诉状称,总部位于加利福尼亚的英伟达是世界上最大、最有价值的计算公司之一。英伟达开发和销售计算机芯片和设备,以个人计算机和数据中心的独立图形处理单元 (GPU) 的主要供应商而闻名,这些单元广泛用于人工智能处理和图形处理。Nvidia 还开发和销售用于高级网络、数据中心中央处理单元和计算机辅助驾驶的产品。在这些领域,英伟达和英伟达的重要竞争对手都依赖 Arm 的技术来开发自己的竞争产品。

由于 Arm 的技术是使 Nvidia 与其竞争对手在多个市场上展开竞争的关键投入,诉状称,拟议的合并将使 Nvidia 有能力和动力利用其对该技术的控制来削弱其竞争对手,从而减少竞争并最终导致投诉称,产品质量下降、创新减少、价格上涨和选择减少,损害了数百万从基于 Arm 的产品中受益的美国人。

根据诉状,此次收购将损害英伟达使用基于 Arm 产品的三个全球市场的竞争:

用于乘用车的高级高级驾驶员辅助系统。这些系统提供计算机辅助驾驶功能,例如自动变道、车道保持、高速公路出入口和碰撞预防;


DPU SmartNIC,这是一种先进的网络产品,用于提高数据中心服务器的安全性和效率;


面向云计算服务提供商的基于 Arm 的 CPU。

这些新兴产品利用 Arm 的技术来满足提供云计算服务的现代数据中心的性能、能效和可定制性需求。“云计算”是指日益流行的计算业务模式,其中大型数据中心运营商远程提供计算服务和/或直接提供计算资源出租,以及为客户提供其他支持服务,客户可以运行应用程序、托管网站或在远程服务器上执行其他计算任务——即“云”。


诉状还称,此次收购将使 Nvidia 获得 Arm 被许可人(其中一些是 Nvidia 的竞争对手)的竞争敏感信息,从而损害竞争,并且可能会降低 Arm 追求被认为与英伟达的商业利益。

今天,Arm 的被许可方——包括 Nvidia 的竞争对手——经常与 Arm 共享竞争敏感信息。诉状称,被许可方依赖 Arm 在其产品的开发、设计、测试、调试、故障排除、维护和改进方面提供支持。Arm 被许可人与 Arm 共享他们的竞争敏感信息,因为 Arm 是中立的合作伙伴,而不是竞争对手的芯片制造商。投诉称,此次收购可能会导致对 Arm 及其生态系统的信任严重丧失。

此次收购还可能通过消除 Arm 本来会追求的创新来损害创新竞争,除非与 Nvidia 的利益发生冲突。诉状称,如果英伟达确定它们可能会损害英伟达,合并后的公司将没有动力开发或启用其他有益的新功能或创新。

投诉对象为 Nvidia Corp.、Arm Ltd. 和 Arm 所有者软银集团公司。委员会以 4-0 的投票结果发布行政投诉。行政审判定于2022年8月9日开始。

在整个调查过程中,委员会工作人员与欧盟、英国、日本和韩国的竞争管理机构的工作人员密切合作。