侵权投诉

linux系统和驱动中按键驱动的编写详解

39度创意研究所 2020-11-21 11:03 次阅读

引言

随着深度学习5G的应用,对FPGA的功能要求越来越多。因此近几年FPGA大厂纷纷将自己的器件集成了更多的内核,比如赛灵思的zynq系列就集成了armGPU,PCIE,射频处理模块等等,用于满足各种各样的需求。出身FPGA的工程师们也必须拥抱这些变化,不仅仅要精通FPGA开发,还需要了解其他方面的知识。比如基于zynq的开发者,就需要了解arm,linux驱动以及linux系统。做深度学习加速的还需要了解深度学习网络以及网络压缩等知识。学习这些知识会让你的眼界更加开阔,会站得高看得远,在开始一项任务的时候不再是盲人摸象,而是高瞻远瞩,把握全局。

这是我介绍linux系统和驱动的第4篇文章,如有不恰当的地方欢迎指正,因为本人也是处于学习入门阶段。三人行,必有我师焉。讨论的多了,问题也就清晰了。这一篇主要介绍按键驱动的编写,了解中断的处理过程,以及设备树的修改。

1. vivado工程搭建

工程搭建很简单,就是配置完zynq核的外设后,增加一个axi_gpio模块,作为外部按键的接口。虽然按键并不是直接连接到arm的IO上,但是axi_gpio也被映射到zynq系统的内存空间中,linux驱动通过读写key对应的映射内存来控制和检测。要检测到key被按下我们必须开启中断,因此axi_gpio模块设置如下图。Address editor是gpio的对应的内存空间。Zynq已经为不同外设类型分配了可选的内存映射,通常工程建立完后,由软件工具自行分配就好了。如果一些外设内存有冲突,是无法生成hdf的。

 

 

 

 

 

 

配置完成后,进行管脚约束,然后综合实现,生成bit文件。再导出hdf文件,打开SDK来生成fsbl,u-boot还使用前几篇介绍驱动中的u-boot。U-boot通常不会因为驱动的新增而修改。但是由于增加了key按键,我们需要去设备树中修改对应的配置。

具体如何修改设备树,可以到linux驱动文件夹Documentation/devicetree中去寻找对应的外设文件,其中有设备树修改的介绍。Gpio的修改可以到gpio文件夹下的gpio-zynq.txt查看。其基本形式为:

         gpio@e000a000 { #gpio-cells = <2>;
                   compatible = "xlnx,zynq-gpio-1.0";
                   clocks = <&clkc 42>;
                   gpio-controller;
                   interrupt-parent = <&intc>;
                   interrupts = <0 20 4>;
                   interrupt-controller;
                   #interrupt-cells = <2>;
                   reg = <0xe000a000 0x1000>; };

其中compatible主要是用于linux驱动去匹配设备树中相应的节点,后面我们会介绍,这个名字和那一块程序有关。主要是配置中断,其中interrupts-cell指定了interrupts有多少个属性。Interrupts的第一个属性是中断类型,第二个是中断号,最后一个表示触发类型:高电平触发、低电平触发、上升沿触发和下降沿触发四种类型。Interrupt-parent是中断所属的中断控制器。我们在SDK中产生了设备树,我们看到按键的相应节点位于amba_pl节点下,其中amba_pl是PL端的总线节点,而amba是PS端的总线节点,修改pl.dtsi中的gpio内容:

我们改了compitable的内容,同时要关注inerrupts,xlnx,all-inputs,xlnx,gpio-width这些属性。Gpio-width是宽度,all-inputs是表示为输入。

设备树修改完后就可以编译设备树文件,然后用fsbl,u-boot,设备树来制作boot.bin了。放到SD卡,启动linux系统。接下来进入关键环节,key驱动的编写。

2. 按键驱动代码剖析

对于一个刚刚入门的人来说,其实了解了驱动的基本框架就好了。每个驱动都按照它的框架进行编写和修改。能理解驱动的各个模块功能,在驱动调试或者编写中就能有的放矢。一个简单的驱动的构成也很复杂,代码也很多,篇幅有限,我只介绍主要部分。

1)platform框架

Platform是一种虚拟的平台,提供了驱动和具体硬件交互的接口。Platform_device类似于虚拟的总线,IIC,LCD,GPIO等外设都可以看做platform_device,通过它可以遍历所有的总线设备,而对应的驱动就是platform_driver。基本流程是:先注册platform_device,再注册platform_driver,然后匹配设备和驱动,最后注册整个驱动。

在linux3以前的版本,需要定义platform_device结构体,然后通过platform_device_register函数来注册设备。但是linux3.0以后出现了设备树,内核函数of_platform_default_populate_init会在内核启动后遍历设备树,自动注册每个节点对应的设备。因此只需要修改设备树参数就行了。首先看这个结构体:

static const struct of_device_id key_of_match[] __devinitdata={
         {.compatible="xlnx,gpio-keys",},
         {/*end of list*/},
};

这实际上定义了设备的匹配号,compatible就是在设备树节点axi-gpio中对应的节点匹配名称。我们只要让compitable和设备树中对应节点的值匹配上就可以将节点对应的设备注册到总线上了。

platform_driver用于对设备的搜索和配置,主要就是去解析设备树,根据设备树中节点信息来填充设备结构体对应信息或者直接对设备完成配置。

static struct platform_driver key_driver={
         .driver={
                   .name=DRIVER_NAME,
                   .owner=THIS_MODULE,
                   .of_match_table=key_of_match,
         },
         .probe=key_probe,
         .remove=key_remove,
};

我们主要关注其三个变量,of_match_table就是of_device_id结构体定义的,用来匹配节点。Probe函数用来解析节点,配置设备。Remove主要是释放在probe中使用的资源等。

编写key驱动主要就是去填充probe和remove两个函数。

来看probe函数是如何查找到设备的一些属性的,比如我们要确定key键的数量,那么我们可以这样来做:

         if(of_property_read_u32(node, "xlnx,gpio-width", &width)){
                   printk(KERN_ERR "get the gpio-width/n");
         }

通过匹配“xlnx,gpio-width”来获得key的位宽,这个属性就在设备中定义的。

如果我们要操作key,需要获得key设备的内存映射空间,这个可以通过函数platform_get_resource函数来完成。

mem=platform_get_resource(pdev, IORESOURCE_MEM, 0);
         if(!mem){
                   printk(KERN_ERR "get memory resource/n");
                   return -ENODEV;
         }

第一个参数pdev是platform_device结构体,在进入probe函数之前就已经被注册了,其指向的就是key对应的设备。第二个参数是类型,主要有IORESOURCE_MEM, IORESOURCE_IRQ等。最后一个参数是号码,指示platform_device结构体中不同的资源类型,即IORESOURCE类型。

以上获得的mem就是在设备树中由reg指定的内存映射:

reg = <0x41210000 0x10000>;

中断的获得可以通过函数:

         r_irq=irq_of_parse_and_map(node, 0);
         if(!r_irq){
                   printk(KERN_ERR "get interrupt/n");
         }

其中device_node就是设备节点,在platform_device注册的时候,含有该节点,所以可以通过该结构体获得。第二个参数表示一个设备树节点有多个中断时的索引。

通过设备树获得了硬件信息后,我们将其填充到key_device中,key_device定义如下:

struct key_dev{
         struct cdev dev;
         struct work_struct work;                 
         int irq;
         int major;
         unsigned long start_addr;
         unsigned long size;
         void __iomem *baseaddr;
         int width;
         int inout;
         int key_prs;
};

其中irq为中断号,cdev是字符设备结构体,因为key等属于字符设备。填充如下:

        lp->start_addr=mem->start;
         lp->size=mem->end-mem->start;
         lp->irq=r_irq;
         lp->width=width;

2)中断处理

在platform中我们谈到了对中断号的获取,那么取得了中断号之后如何来检测中断事件呢?中断处理过程可以被分成两部分:顶半部和底半步。顶半部主要处理硬件上比较紧急的事物,比如检测中断,底半部用于处理中断产生之后需要进行的事务处理。在底半部处理过程中不会耽误检测下一个中断。这两个部分不是绝对的,也可以只有一个部分。

驱动中首先需要定义一个中断函数,用于中断产生后进行的操作。然后申请中断,实现函数:

err=request_irq(k_dev->irq,key_interrupt, IRQF_SHARED|IRQF_TRIGGER_RISING, DRIVER_NAME, k_dev);

第一个是中断号,第二个为中断处理函数,第三个参数为中断产生类型,上升沿下降沿一类,第四个为名字,可以命名中断,最后一个是设备结构体。

释放中断就通过free_irq(unsigned int irq, void *dev_id)来完成。

实现中断底半部处理机制主要有tasklet,工作队列,软中断和线程化irq。中断机制较为复杂,任何一种机制都可以让你竭尽脑汁。入门者还是循序渐进,所以我也只用了一种简单的方法。类似锁机制,我们定义一个事件:

static DECLARE_WAIT_QUEUE_HEAD(press_queue);

然后在中断函数中唤醒这个事件,在其他函数中可以通过等待这个事件来进行中断处理。我们的中断函数为:

static irqreturn_t key_interrupt(int irq, void *dev_id)
{
         struct key_dev *dev=dev_id;
         dev->key_prs++;
         printk(KERN_INFO "interruptted/n");
         wake_up_interruptible(&press_queue);
         return IRQ_HANDLED;
}

而等待该事件放在key_read函数中:

ssize_t key_read(struct file *filp, char __user *buf, size_t count, loff_t *fops)
{
         int err;     
         struct key_dev *dev=filp->private_data;        
         wait_event_interruptible(press_queue, event_press);
         event_press=0;
         err=copy_to_user(buf, &dev->key_prs, count);
         return err ? -EFAULT : 0;
}

3)文件结构

Linux一切皆文件,任何驱动最终都被封装为一个文件,用户空间通过读写文件来操作驱动。文件操作包括打开,关闭,读和写等。我们不做具体介绍,简单列出文件结构体为:

struct file_operations key_fops={
         .owner=THIS_MODULE,
         .open=key_open,
         .read=key_read,
         .release=key_close,
};

总结

对以上进行总结就是:
1) 首先进行设备树节点属性修改;
2) 填充platform框架下的probe,remove等函数,并定义of_device_id和platform_driver结构体;
3) 申请中断,释放中断,编写中断函数等;
4) 填充文件结构,编写open,close,read等函数;

编辑:hfy


收藏 人收藏
分享:

评论

相关推荐

英国将选择NEC取代华为,成为5G设备的合作伙伴

不知道大家有没有留意到,英国对华为5G设备下达禁令以后,有一家日本企业逐渐浮上水面,成为英国5G坐上....
的头像 我快闭嘴 发表于 11-30 12:17 38次 阅读
英国将选择NEC取代华为,成为5G设备的合作伙伴

华为手机版的鸿蒙OS2.0系统将在12月份正式发布

在华为5G以及操作系统方面都进行了一定的打压。修改规则之后,谷歌停止了对于华为手机安卓系统的授权,这....
的头像 我快闭嘴 发表于 11-30 12:11 142次 阅读
华为手机版的鸿蒙OS2.0系统将在12月份正式发布

各大手机厂商正成为5G普及变革的推动者

近日,中国移动、中国电信、中国联通三家运营商相继公布了10月份运营数据。数据显示,在5G业务方面,三....
发表于 11-30 12:02 16次 阅读
各大手机厂商正成为5G普及变革的推动者

5G将如何启用和加速物联网?

你很有可能听说过一个叫做物联网(IoT)的术语。广义地说,物联网是一个通用术语,用于描述通过诸如Sp....
的头像 我快闭嘴 发表于 11-30 11:58 120次 阅读
5G将如何启用和加速物联网?

5G时代为各行各业带来三大趋势,如何实现5G和企业业务变现

2020年,新冠疫情的影响并未阻碍5G的发展,全球移动供应商协会 (GSA)官网公布的信息显示,目前....
发表于 11-30 11:54 68次 阅读
5G时代为各行各业带来三大趋势,如何实现5G和企业业务变现

4G与5G:大锅饭与自助餐

众所周知,2019年被业内人士称为5G商用元年。如今时间已经过去了一年多,5G终端设备出货量也接近了....
的头像 Les 发表于 11-30 11:53 63次 阅读
4G与5G:大锅饭与自助餐

高通在未来5G部署与应用前景的展望

2020年11月26日至28日,以“5G赋能 共享共赢”为主题的2020世界5G大会在广州召开。作为....
发表于 11-30 11:52 66次 阅读
高通在未来5G部署与应用前景的展望

11月网络安全行业热点事件汇总

近年来,随着互联网的快速普及,人工智能、5G、大数据等技术的不断落地,网络安全问题愈发引发关注。日常....
的头像 我快闭嘴 发表于 11-30 11:38 91次 阅读
11月网络安全行业热点事件汇总

5G的出现为智慧医疗带来催化作用

近日,国家工信部和卫健委办公厅联合组织开展“5G+医疗健康”应用试点项目申报工作,围绕急诊救治、远程....
的头像 我快闭嘴 发表于 11-30 11:33 136次 阅读
5G的出现为智慧医疗带来催化作用

特斯拉“自动驾驶”软件的最新升级版将大规模发布

11月29日消息,当地时间周五,特斯拉公司首席执行官埃隆·马斯克(Elon Musk)表示,在两周内....
的头像 我快闭嘴 发表于 11-30 11:30 130次 阅读
特斯拉“自动驾驶”软件的最新升级版将大规模发布

英国将在2021年9月禁止运营商安装华为5G设备

据外媒CNET报道,英国政府制定了一个路线图,在2027年的最后期限前,将包括华为在内的“高风险厂商....
发表于 11-30 11:29 19次 阅读
英国将在2021年9月禁止运营商安装华为5G设备

第三届全球IC企业家大会暨IC China2020在沪开幕

第三届全球 IC 企业家大会暨 IC China 2020 在沪开幕 由中国半导体行业协会、中国电子....
的头像 集成电路应用杂志 发表于 11-30 11:24 77次 阅读
第三届全球IC企业家大会暨IC China2020在沪开幕

英国宣布将于2021年9月开始禁止安装华为5G设备

据外媒报道,近日英国政府制定了新的时间表,在2027年的最后期限前,将包括华为在内的高风险厂商制造的....
的头像 工程师邓生 发表于 11-30 11:21 140次 阅读
英国宣布将于2021年9月开始禁止安装华为5G设备

5G商用步伐加快,对无人机产业有何影响?

今年以来,我国5G发展按下快进键,各地5G建设纷纷完成既定目标,推动了5G商用步伐的不断加快。根据工....
的头像 我快闭嘴 发表于 11-30 11:20 73次 阅读
5G商用步伐加快,对无人机产业有何影响?

英国政府:不得在明年9月之后部署新华为5G设备

据报道,英国政府周一表示,英国电信公司不得在2021年9月之后安装新的华为5G设备,这是其从高速移动....
的头像 我快闭嘴 发表于 11-30 11:15 119次 阅读
英国政府:不得在明年9月之后部署新华为5G设备

5G换机潮对每家都是一道大考题

从10月份新机发售到热闹的双11,2020年各家旗舰手机售卖潮持续至今,然而热闹归热闹,终归少了些群....
的头像 腾讯创业 发表于 11-30 11:09 85次 阅读
5G换机潮对每家都是一道大考题

中国移动明年初将完善“3+3+X”数据中心布局

中国移动召开全球伙伴大会,中国移动董事长杨杰发表主旨演讲介绍。
发表于 11-30 11:08 41次 阅读
中国移动明年初将完善“3+3+X”数据中心布局

瀚博半导体完成A轮融资,将用于芯片产品下游应用的规模化生产

瀚博半导体(上海)有限公司(下称“瀚博半导体”或“瀚博”)今日宣布完成总计5000万美元的A轮融资。....
的头像 我快闭嘴 发表于 11-30 11:07 80次 阅读
瀚博半导体完成A轮融资,将用于芯片产品下游应用的规模化生产

传小米旗舰新机已送网备案

11月30日消息,据数码博主爆料,小米旗舰新机已经送网备案,估计下个月就会公示,该机已经开始量产,进....
的头像 我快闭嘴 发表于 11-30 11:06 123次 阅读
传小米旗舰新机已送网备案

中国移动5G战略密码亮相

凡益之道,与时偕行。刚刚过去的这个周末,必将给中国移动留下历史性的印记。 在2020年11月20日上....
的头像 通信头条 发表于 11-30 11:05 175次 阅读
中国移动5G战略密码亮相

苹果5G换机潮拉开帷幕,高端手机市场竞争格局优化

考虑到手机平均2-3年的换机周期,加上5G时代手机创新迭出刺激需求。受益于疫情后经济的恢复和5G换机....
的头像 核芯产业观察 发表于 11-30 11:00 116次 阅读
苹果5G换机潮拉开帷幕,高端手机市场竞争格局优化

中国移动未来在6G领域将发挥重要作用

2020年是我国全面建成小康社会和“十三五”规划收官之年,也是中国移动成立20周年。作为信息通信领域....
的头像 我快闭嘴 发表于 11-30 10:59 86次 阅读
中国移动未来在6G领域将发挥重要作用

中国移动未来5年投资1000亿的十大原则

11月20日,在中国移动2020年全球合作伙伴大会期间,中国移动召开产投协同,和衷共济产投协同分论坛....
的头像 通信头条 发表于 11-30 10:58 56次 阅读
中国移动未来5年投资1000亿的十大原则

数据中心新基建的下一个五年发展情况介绍

数据中心的地位越来越重要,数据中心正在成为技术创新的又一制高点。5G与数据中心占据同等重要位置,5G....
的头像 我快闭嘴 发表于 11-30 10:56 91次 阅读
数据中心新基建的下一个五年发展情况介绍

杨杰:中国移动将加快成为网络强国、数字中国、智慧社会主力军

共创信息服务新生态 共拓数字经济新蓝海 在中国移动2020年全球合作伙伴大会上的主旨演讲 尊敬的王曦....
的头像 通信头条 发表于 11-30 10:52 98次 阅读
杨杰:中国移动将加快成为网络强国、数字中国、智慧社会主力军

三大工业互联网大数据应用场景介绍

在“新基建”的浪潮下,《“十四五”规划纲要》明确提出加大新基础设施建设,包括5G、工业互联网、工业大....
的头像 我快闭嘴 发表于 11-30 10:51 118次 阅读
三大工业互联网大数据应用场景介绍

中国移动1000亿投资为5G生态建设重大举措

中国移动董事长杨杰在2020中国移动全球合作伙伴大会主论坛上表示中国移动将共拓数字蓝海,构建百花齐放....
的头像 通信头条 发表于 11-30 10:50 70次 阅读
中国移动1000亿投资为5G生态建设重大举措

中国移动携手中兴通讯共同探索新兴业务发展机遇

中国移动通信集团有限公司与中兴通讯股份有限公司达成战略合作。
发表于 11-30 10:50 146次 阅读
中国移动携手中兴通讯共同探索新兴业务发展机遇

中国联通开启云计算国家队赋能新格局建设的征程

当前,我国处在两个百年目标 与第四次工业革命战略机遇重合期。面对国内外新形势,中央提出构建以国内大循....
的头像 通信头条 发表于 11-30 10:48 90次 阅读
中国联通开启云计算国家队赋能新格局建设的征程

华为将于明年上半年发布P系列旗舰手机

据台媒报道,华为上周通知了中国台湾地区零部件厂商,将在本月重新采购镜头、载板等手机零部件。
发表于 11-30 10:40 105次 阅读
华为将于明年上半年发布P系列旗舰手机

手机厂商在TWS耳机市场的转型之路面临哪些挑战?

回溯过去三年,智能手机市场尚未开始享受5G时代的产业红利,反而是处在总出货量持续下滑的产业寒冬中,这....
的头像 我快闭嘴 发表于 11-30 10:38 71次 阅读
手机厂商在TWS耳机市场的转型之路面临哪些挑战?

武汉打造5G电动汽车充电站一体化管理平台

近来,湖北武汉联通紧抓市场机遇,针对武汉市数家有人值守、无人值守充电点进行了运行状态调研,携手国网武....
发表于 11-30 10:36 39次 阅读
武汉打造5G电动汽车充电站一体化管理平台

香港移动成为全港首个为企业及个人客户提供5G网络服务

中国移动香港宣布,正式实现商用5G独立组网,助力香港建设世界级智慧城市,由此中国移动香港成为香港首个....
的头像 lhl545545 发表于 11-30 10:17 77次 阅读
香港移动成为全港首个为企业及个人客户提供5G网络服务

国内BI市场的发展还远未成熟,仍有很大的发展空间

伴随着新基建的热潮,国家密集出台了一系列的支持政策,明确指向传统经济要借助人工智能、大数据、云计算等....
的头像 Les 发表于 11-30 10:13 45次 阅读
国内BI市场的发展还远未成熟,仍有很大的发展空间

采用FPGA芯片EPM7032和VHDL语言实现自动交通系统的应用方案

随着微电子技术的迅猛发展,可编程逻辑器件从20世纪70年代发展至今,其结构、工艺、集成度、功能、速度....
发表于 11-30 10:10 40次 阅读
采用FPGA芯片EPM7032和VHDL语言实现自动交通系统的应用方案

Linux之父表示移植M1 Mac的困难主要在于苹果不开放GPU

日前在出席Real World Technologies论坛时,Linux之父Linus Torva....
的头像 工程师邓生 发表于 11-30 10:05 44次 阅读
Linux之父表示移植M1 Mac的困难主要在于苹果不开放GPU

基于Linux的嵌入式GUI实现微波信号发生器人机界面设计

嵌入式系统的出现至今已有30多年的历史,嵌入式技术也经历了三个发展阶段。早期的嵌入式系统因资源极其有....
的头像 电子设计 发表于 11-30 10:01 68次 阅读
基于Linux的嵌入式GUI实现微波信号发生器人机界面设计

ARM主板RK3288/RK3399主板中安卓系统与LINUX系统的相同点与不同点

安卓,是一个系统,用于移动终端,智能手机、平板之类,如今也可以用于桌面工作站或电视机顶盒、智能电视等。它的内核基于linux内...
发表于 11-30 09:53 0次 阅读
ARM主板RK3288/RK3399主板中安卓系统与LINUX系统的相同点与不同点

三星最便宜5G手机A32曝光:售价达到了3052元

随着红米NOTE 9系列的发布,接下来相信国内厂商都会进一步拉低5G手机的价格。国内手机厂商在国内开....
的头像 Les 发表于 11-30 09:42 111次 阅读
三星最便宜5G手机A32曝光:售价达到了3052元

全球首款5G三防手机发布,采用纯国产5G芯片

国内著名三防手机品牌AGM宣布,将于12月1日上午10:08开启AGM X5新机的预约。
的头像 如意 发表于 11-30 09:37 81次 阅读
全球首款5G三防手机发布,采用纯国产5G芯片

沃达丰西班牙总裁力挺华为5G

沃达丰西班牙公司总裁安东尼奥 科英布拉(Antonio Coimbra)在 NEF 趋势论坛的演讲中....
的头像 璟琰乀 发表于 11-30 09:36 79次 阅读
沃达丰西班牙总裁力挺华为5G

5G消费将呈现出怎样的发展趋势?

正式启动商用一年多以来,5G正在一步步把人们对未来信息生活的想象变成现实。它对于消费者而言意味着什么....
发表于 11-30 09:35 46次 阅读
5G消费将呈现出怎样的发展趋势?

5G技术在智慧工厂中扮演怎样的角色?

通信世界全媒体举办的“5G+工业互联网+大数据开创智慧新工业”主题沙龙活动顺利召开。本次沙龙活动邀请....
的头像 我快闭嘴 发表于 11-30 09:29 103次 阅读
5G技术在智慧工厂中扮演怎样的角色?

高通的5G RAN平台解决Open vRAN生态系统所面临的挑战

来自市场研究公司Omdia的最新报告称,高通在其于2020年10月20日举行的5G峰会上宣布,将推出....
发表于 11-30 09:28 53次 阅读
高通的5G RAN平台解决Open vRAN生态系统所面临的挑战

紫光同创:正在研发28nm、40nm系列新产品

近日,紫光同创在接受天风证券调研时对外表示,公司FPGA产品已经应用于通信领域,主要应用场景有2G语....
的头像 我快闭嘴 发表于 11-30 09:25 70次 阅读
紫光同创:正在研发28nm、40nm系列新产品

5G引领未来,机遇与挑战并存

  2019年,随着5G牌照的发放,中国正式跨入5G商用元年。截至目前,我国已开通70多万个5G基站....
发表于 11-30 09:21 55次 阅读
5G引领未来,机遇与挑战并存

中国移动:积极探寻2B市场,创新商业模式

由中国移动联合通信世界全媒体举办的“奋斗20载,整装再出发”主题沙龙活动顺利召开。本次沙龙活动邀请了....
发表于 11-30 09:16 83次 阅读
中国移动:积极探寻2B市场,创新商业模式

浅谈M1 Mac移植Linux的问题

日前在出席Real World Technologies论坛时,Linux之父Linus Torva....
的头像 lhl545545 发表于 11-30 09:12 53次 阅读
浅谈M1 Mac移植Linux的问题

5G ToB场景面临的五大安全风险分析

11月28日,以“新基建 新安全”为主题的湾区创见·2020网络安全大会在深圳国际会展中心正式召开。....
的头像 我快闭嘴 发表于 11-30 09:12 130次 阅读
5G ToB场景面临的五大安全风险分析

网友吐槽iPhone 12 mini拍照的不足

苹果今年发布的四款iPhone 12系列手机已经全面开卖了,涵盖了5.4寸到6.7寸多个尺寸,价格也....
的头像 lhl545545 发表于 11-30 09:09 122次 阅读
网友吐槽iPhone 12 mini拍照的不足

【米尔FZ3深度学习计算卡试用体验】在米尔FZ3深度学习计算卡上跑自己的系统

在米尔FZ3深度学习计算卡上跑自己的系统米尔FZ3深度学习计算卡本质上是一块利用Zynq跑自定义的系统,并在其中加入FPGA深...
发表于 11-27 21:21 204次 阅读
【米尔FZ3深度学习计算卡试用体验】在米尔FZ3深度学习计算卡上跑自己的系统

基于IAR EW编译工具实现Linux系统上自动化构建

业界知名嵌入式开发软件工具IAR Embedded Workbench的编译工具现已支持在Linux系统运行,IAR编译工具提供高质量代码、高...
发表于 11-27 13:41 101次 阅读
基于IAR EW编译工具实现Linux系统上自动化构建

DevEco studio有出linux的计划么 ?

linux作为一款pc端虽然普及程度不高,但是在编程界的地位还是举足轻重的。关键是linux上安装的window虚拟机没有办法跑DevEco s...
发表于 11-27 10:40 108次 阅读
DevEco studio有出linux的计划么 ?

迅为IMX6ULL开发板Linux下电容触摸屏实验-驱动框架

如今触摸屏的使用越来越广泛,从手机、平板到蜂巢取货等场合,都是用了触摸屏,触摸屏的使用非常便捷高效。在本章就来学习一下如...
发表于 11-27 10:13 101次 阅读
迅为IMX6ULL开发板Linux下电容触摸屏实验-驱动框架

Xilinx FPGA设计进阶(提高篇)

发表于 11-27 10:00 101次 阅读
Xilinx FPGA设计进阶(提高篇)

如何学习单片机

使用单片机就是理解单片机硬件结构,以及内部资源的应用,在汇编或C语言中学会各种功能的初始化设置,以及实现各种功能的程序...
发表于 11-27 09:48 277次 阅读
如何学习单片机

ACAP的主要架构创新解析

2019年“国际研讨会”上,发表了两篇长论文,详细介绍了“自适应计算加速平台”ACAP的系统架构和技术细节。本文将对ACAP...
发表于 11-27 07:30 0次 阅读
ACAP的主要架构创新解析

Linux 5.10已为基于EFI引导的RISC-V硬件提供了初步支持

持续数月的努力,由西部数据(WD)工程师领导的 RISC-V UEFI 工作组,终于让 Linux 5.10 为 RISC-V 硬件提供了...
发表于 11-26 21:18 0次 阅读
Linux 5.10已为基于EFI引导的RISC-V硬件提供了初步支持

香橙派Orange Pi Zero2开发板使用USB摄像头的方法(Linux镜像)

前面给大家介绍过香橙派Zero2开发板在安卓系统下连接USB摄像头的操作步骤,本篇接着说明下在Linux下使用USB摄像头的方法...
发表于 11-26 16:10 0次 阅读
香橙派Orange Pi Zero2开发板使用USB摄像头的方法(Linux镜像)

AM4379 AM437x ARM Cortex-A9 微处理器 (MPU)

TI AM437x高性能处理器基于ARM Cortex-A9内核。 这些处理器通过3D图形加速得到增强,可实现丰富的图形用户界面,还配备了协处理器,用于进行确定性实时处理(包括EtherCAT,PROFIBUS,EnDat等工业通信协议)。该器件支持高级操作系统(HLOS)。基于Linux的® 可从TI免费获取。其它HLOS可从TI的设计网络和生态系统合作伙伴处获取。 这些器件支持对采用较低性能ARM内核的系统升级,并提供更新外设,包括QSPI-NOR和LPDDR2等存储器选项。 这些处理器包含功能方框图中显示的子系统,并且后跟相应的“说明”中添加了更多信息说明。 处理器子系统基于ARM Cortex-A9内核,PowerVR SGX™图形加速器子系统提供3D图形加速功能以支持显示和高级用户界面。 可编程实时单元子系统和工业通信子系统(PRU-ICSS与ARM内核分离,允许单独操作和计时,以实现更高的效率和灵活性.PRU-ICSS支持更多外设接口和EtherCAT,PROFINET,EtherNet /IP,PROFIBUS,以太网Powerlink,Sercos,EnDat等...
发表于 09-25 11:51 180次 阅读
AM4379 AM437x ARM Cortex-A9 微处理器 (MPU)

TMP411 ±1°C Programmable Remote/Local Digital Out Temperature Sensor

TMP411设备是一个带有内置本地温度传感器的远程温度传感器监视器。远程温度传感器,二极管连接的晶体管通常是低成本,NPN或PNP型晶体管或二极管,是微控制器,微处理器或FPGA的组成部分。 远程精度为±1 °C适用于多个设备制造商,无需校准。双线串行接口接受SMBus写字节,读字节,发送字节和接收字节命令,以设置报警阈值和读取温度数据。 TMP411器件中包含的功能包括:串联电阻取消,可编程非理想因子,可编程分辨率,可编程阈值限制,用户定义的偏移寄存器,用于最大精度,最小和最大温度监视器,宽远程温度测量范围(高达150°C),二极管故障检测和温度警报功能。 TMP411器件采用VSSOP-8和SOIC-8封装。 特性 ±1°C远程二极管传感器 ±1°C本地温度传感器 可编程非理想因素 串联电阻取消 警报功能 系统校准的偏移寄存器 与ADT7461和ADM1032兼容的引脚和寄存器 可编程分辨率:9至12位 可编程阈值限...
发表于 09-19 16:35 223次 阅读
TMP411 ±1°C Programmable Remote/Local Digital Out Temperature Sensor

TMP468 具有引脚可编程的总线地址的高精度远程和本地温度传感器

TMP468器件是一款使用双线制SMBus或I 2 C兼容接口的多区域高精度低功耗温度传感器。除了本地温度外,还可以同时监控多达八个连接远程二极管的温度区域。聚合系统中的温度测量可通过缩小保护频带提升性能,并且可以降低电路板复杂程度。典型用例为监测服务器和电信设备等复杂系统中不同处理器(如MCU,GPU和FPGA)的温度。该器件将诸如串联电阻抵消,可编程非理想性因子,可编程偏移和可编程温度限值等高级特性完美结合,提供了一套精度和抗扰度更高且稳健耐用的温度监控解决方案。 八个远程通道(以及本地通道)均可独立编程,设定两个在测量位置的相应温度超出对应值时触发的阈值。此外,还可通过可编程迟滞设置避免阈值持续切换。 TMP468器件可提供高测量精度(0.75°C)和测量分辨率(0.0 625°C)。该器件还支持低电压轨(1.7V至3.6V)和通用双线制接口,采用高空间利用率的小型封装(3mm×3mm或1.6mm×1.6mm),可在计算系统中轻松集成。远程结支持-55°C至+ 150°C的温度范围。 特性 8通道远程二极管温度传感器精度:±0.75&...
发表于 09-18 16:05 148次 阅读
TMP468 具有引脚可编程的总线地址的高精度远程和本地温度传感器