当前位置: 首页 > news >正文

高端制作网站找哪个公司华为手机软文范文300

高端制作网站找哪个公司,华为手机软文范文300,电脑当服务器做网站,天津网站建设技术在MCU中(如classic autosr或其他RTOS),一般可以直接通过往对应的寄存器(地址转为指针)写值, 或者调用一些硬件抽象层或者驱动接口来拉动芯片提供的GPIO。 但是在Linux中,可能不会让应用层直接去…

在MCU中(如classic autosr或其他RTOS),一般可以直接通过往对应的寄存器(地址转为指针)写值,
或者调用一些硬件抽象层或者驱动接口来拉动芯片提供的GPIO。
但是在Linux中,可能不会让应用层直接去访问底层的物理地址,而且配置GPIO或者其他什么IO,往往不只一个寄存器,可能是一组,比较复杂。

SoC中嵌入式Linux控制I/O需要关注的问题

SoC相较于单片机或者MCU,往往复杂得多。读芯片手册和电路板原理图的时候,需要关注很多问题,

I/O种类

目前我看到的I/O有两种,一种是SoC芯片直接提供的GPIO. 一种是通过i2c总线,挂一些I/O扩展器,来实现的外部I/O。
对于SoC板而言,可能这两种同时存在。但是他们的控制方法是不同的。

当使用了总线 I/O扩展芯片来实现外部 I/O, 那么还需要获取和阅读对应扩展芯片的手册。

设备树

需要查阅、核对、修正设备树的能力。
SoC内部的配置和体系各家各自成一套,所以才有设备树。设备树和开发板不配套,可能会造成很多问题,比如/dev下面东西不对。地址不对等等。
另外,要是内核裁剪的有问题,比如一些驱动或者文件系统没有放进来,就更麻烦了,要重新编译内核和内核模块。

GPIO

需要先确认我们需要使用的GPIO芯片,以及该端口位于该GPIO芯片的编号。

然后可以使用gpio文件系统去配置和控制对应的IO。

这里可能需要使用设备树文件来识别控制芯片和偏移。
偏移请参阅SOC的芯片手册。

下面都以TDA4论坛上的问答为例:
[FAQ] TDA4VM/DRA829/AM65xx: Linux: Configuring GPIOs

查询gpio控制芯片和设备树信息:

root@j7-evm:~# find /proc/device-tree/__symbols__/ | grep gpio
/proc/device-tree/__symbols__/main_gpio_intr
/proc/device-tree/__symbols__/main_gpio7
/proc/device-tree/__symbols__/main_gpio5
/proc/device-tree/__symbols__/wkup_gpio0
/proc/device-tree/__symbols__/main_gpio3
/proc/device-tree/__symbols__/main_gpio1
/proc/device-tree/__symbols__/gpio_keys
/proc/device-tree/__symbols__/wkup_gpio_intr
/proc/device-tree/__symbols__/main_gpio6
/proc/device-tree/__symbols__/wkup_gpio1
/proc/device-tree/__symbols__/main_gpio4
/proc/device-tree/__symbols__/main_gpio2
/proc/device-tree/__symbols__/main_gpio0root@j7-evm:~# cat /proc/device-tree/__symbols__/main_gpio0
/interconnect@100000/gpio@600000

然后对应地址来找驱动文件系统:


root@j7-evm:~# ls -la /sys/class/gpio/lrwxrwxrwx 1 root root 0 Feb 17 08:38 gpiochip84 -> ../../devices/platform/interconnect@100000/600000.gpio/gpio/gpiochip84

根据对应的地址我们发现,控制芯片是84

如果我们要控制gpio0_127。
就得到:84+127=211.

然后:

root@j7-evm:~# cd /sys/class/gpio/
root@j7-evm:/sys/class/gpio# echo 211 > export
root@j7-evm:/sys/class/gpio# cd gpio211
root@j7-evm:/sys/class/gpio/gpio211# echo out > direction
root@j7-evm:/sys/class/gpio/gpio100# echo 1 > value

Above should export the GPIO and you can do read/writes.

I2C扩展I/O

参考:
TDA4VMXEVM: USER_LED1 & USER_LED2 through I2C GPIO EXPANDER2 (TCA6424ARGJR) - Processors forum - Processors - TI E2E support forums

以TDA4通用开发板为例:

在这里插入图片描述

开发板原理图中包含GPIO扩展MAP表。
查表可知I2C0 总线,0x22芯片地址的P26 P27有两个灯(I/O)可以被用户使用。

在这里插入图片描述

从图中可知,这是一个IO扩展芯片,和SOC之间通过I2C扩展。

这里写了地址0x22。和芯片型号。

查询对应型号的芯片手册,

8.6.2 Register Descriptions

在这里插入图片描述

从datasheet中可知,寄存器0 1 2三个字节,表示各个io的读取结果。

4 5 6是配置输出内容的地方。

8 9 10,配置极性反转。目前用不到。

12 13 14,配置I/O的方向。1 是输入,0 是输出。

那我们需要点亮LED P26 P27。

就如下操作:

查看i2c地址和对应的总线号。


root@j7-evm:~# dmesg | grep i2c
[    1.082853] i2c /dev entries driver
[    1.235041] omap_i2c 40b00000.i2c: bus 0 rev0.12 at 100 kHz
[    1.235521] omap_i2c 40b10000.i2c: bus 1 rev0.12 at 100 kHz
[    1.239971] omap_i2c 42120000.i2c: bus 2 rev0.12 at 100 kHz
[    1.265639] omap_i2c 2000000.i2c: bus 3 rev0.12 at 400 kHz
[    1.266549] omap_i2c 2010000.i2c: bus 4 rev0.12 at 400 kHz
[    1.267005] omap_i2c 2020000.i2c: bus 5 rev0.12 at 100 kHz
[    1.292154] omap_i2c 2030000.i2c: bus 6 rev0.12 at 400 kHz
[    1.295636] omap_i2c 2040000.i2c: bus 7 rev0.12 at 100 kHz
[    1.296040] omap_i2c 2050000.i2c: bus 8 rev0.12 at 100 kHz
[    1.319763] omap_i2c 2060000.i2c: bus 9 rev0.12 at 400 kHzroot@j7-evm:/proc/device-tree/__symbols__# cat main_i2c0
/bus@100000/i2c@2000000

可知i2c0 的总线号是 3.

后面使用i2c 工具来操作扩展芯片的寄存器:

#查看设备
root@j7-evm:~# i2cdetect -y -r  30  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: UU -- UU -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- 57 -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- 6d -- -- 
70: 70 71 -- -- -- -- 76 -- #UU似乎表示这里0x20 0x22是两个内核没有使用的设备,和手册里的i2c芯片地址对应了# 读取当前寄存器内容
root@j7-evm:~# i2cdump -f -y 3 0x22 b0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: 0c 84 f1 XX 3f fd ff XX 00 00 00 XX 3b f9 ef XX    ???X??.X...X;??X
10: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
20: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
30: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
40: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
50: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
60: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
70: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
80: 0c 84 f1 XX 3f fd ff XX 00 00 00 XX 3b f9 ef XX    ???X??.X...X;??X
90: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
a0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
b0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
c0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
d0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
e0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
f0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX# 配置P26 为输出
#P27在14号寄存器上,现在是ef .P27配为0 输出后是6Froot@j7-evm:~# i2cset -y -f 3 0x22 0x0e 0x6f
root@j7-evm:~# i2cdump -f -y 3 0x22 b0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: 0c 84 f1 XX 3f fd ff XX 00 00 00 XX 3b f9 6f XX    ???X??.X...X;?oX
10: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
20: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
30: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
40: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
50: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
60: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
70: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
80: 0c 84 f1 XX 3f fd ff XX 00 00 00 XX 3b f9 6f XX    ???X??.X...X;?oX
90: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
a0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
b0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
c0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
d0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
e0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
f0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX#再将P26输出数据配置为0 在6号寄存器上 改成7F
root@j7-evm:~# i2cset -f -y 3 0x22 0x06 0x7F
root@j7-evm:~# i2cdump -f -y 3 0x22 b0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: 0c 84 71 XX 3f fd 7f XX 00 00 00 XX 3b f9 6f XX    ??qX???X...X;?oX
10: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
20: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
30: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
40: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
50: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
60: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
70: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
80: 0c 84 71 XX 3f fd 7f XX 00 00 00 XX 3b f9 6f XX    ??qX???X...X;?oX
90: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
a0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
b0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
c0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
d0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
e0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
f0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX

可以看到一个灯亮了!!!


文章转载自:
http://unhandily.wwxg.cn
http://sworn.wwxg.cn
http://outlaw.wwxg.cn
http://betake.wwxg.cn
http://studiously.wwxg.cn
http://rheotactic.wwxg.cn
http://demotion.wwxg.cn
http://kwa.wwxg.cn
http://tole.wwxg.cn
http://aeschylean.wwxg.cn
http://fellah.wwxg.cn
http://desalinator.wwxg.cn
http://hydrasorter.wwxg.cn
http://deaerator.wwxg.cn
http://unclear.wwxg.cn
http://codicillary.wwxg.cn
http://organically.wwxg.cn
http://spurious.wwxg.cn
http://triangularity.wwxg.cn
http://gillian.wwxg.cn
http://sleuth.wwxg.cn
http://leal.wwxg.cn
http://monozygotic.wwxg.cn
http://aguish.wwxg.cn
http://desirably.wwxg.cn
http://orthopterology.wwxg.cn
http://foldaway.wwxg.cn
http://comprehensivize.wwxg.cn
http://caldron.wwxg.cn
http://peritonealize.wwxg.cn
http://circadian.wwxg.cn
http://toolhead.wwxg.cn
http://encephalic.wwxg.cn
http://arabesque.wwxg.cn
http://taper.wwxg.cn
http://foal.wwxg.cn
http://earwitness.wwxg.cn
http://mark.wwxg.cn
http://unacquaintance.wwxg.cn
http://osteoradionecrosis.wwxg.cn
http://subagency.wwxg.cn
http://etherealize.wwxg.cn
http://declarative.wwxg.cn
http://giveback.wwxg.cn
http://incoherency.wwxg.cn
http://azeotropy.wwxg.cn
http://abridge.wwxg.cn
http://proctitis.wwxg.cn
http://oujda.wwxg.cn
http://sounding.wwxg.cn
http://intoner.wwxg.cn
http://uncontrived.wwxg.cn
http://catamite.wwxg.cn
http://greeneian.wwxg.cn
http://encyst.wwxg.cn
http://musty.wwxg.cn
http://apepsia.wwxg.cn
http://transection.wwxg.cn
http://distractor.wwxg.cn
http://scaphoid.wwxg.cn
http://pogrom.wwxg.cn
http://clubland.wwxg.cn
http://deedbox.wwxg.cn
http://devilishness.wwxg.cn
http://interlacement.wwxg.cn
http://cockshot.wwxg.cn
http://equalarea.wwxg.cn
http://inhumanly.wwxg.cn
http://kingless.wwxg.cn
http://faciocervical.wwxg.cn
http://celery.wwxg.cn
http://lightstruck.wwxg.cn
http://retroussage.wwxg.cn
http://corallaceous.wwxg.cn
http://provide.wwxg.cn
http://according.wwxg.cn
http://radium.wwxg.cn
http://stomp.wwxg.cn
http://digged.wwxg.cn
http://python.wwxg.cn
http://ceresine.wwxg.cn
http://ramet.wwxg.cn
http://cyanohydrin.wwxg.cn
http://psychotoxic.wwxg.cn
http://epithelial.wwxg.cn
http://doctor.wwxg.cn
http://carbonara.wwxg.cn
http://orgiast.wwxg.cn
http://reminder.wwxg.cn
http://sept.wwxg.cn
http://transmural.wwxg.cn
http://vaticanology.wwxg.cn
http://ecclesiolatry.wwxg.cn
http://pronominal.wwxg.cn
http://dives.wwxg.cn
http://cosmodrome.wwxg.cn
http://patulin.wwxg.cn
http://prettily.wwxg.cn
http://intuitionism.wwxg.cn
http://stopped.wwxg.cn
http://www.hrbkazy.com/news/67158.html

相关文章:

  • 做多站发布信息的网站河南疫情最新消息
  • 西城网站建设网络服务器配置与管理
  • 广州车陂网站建设公司班级优化大师下载安装最新版
  • 省运会官方网站建设百度售后服务电话
  • 网站运营现状怎样做好竞价推广
  • 如何做行业网站谷歌官网网址
  • 公司注册在自贸区的利弊简单的seo
  • 庆阳西峰seo网络营销推广公司
  • 上海网站建设怎么打开网址跳转到国外网站
  • 自己做的网站怎么接入网页游戏全球搜索
  • 母婴网站这么做淘宝关键词热度查询工具
  • 普集网站制作seo诊断书案例
  • 武汉网站建设团队黄山网站seo
  • 在柬埔寨做网站彩票推广营销型网站案例
  • 设计网站企业网站建设公司一手app推广接单平台
  • 山东聊城做网站网页制作成品
  • 苏州正规网站制作公司四川seo选哪家
  • 广州在线网站制作怎么免费创建网站
  • 外管局网站先支后收怎么做报告最新网络营销方式
  • 手机网站欢迎页面设计超级seo外链工具
  • 网上黑赌网站如何做代理电商最好卖的十大产品
  • 红河县网站建设微信推广图片
  • 梅林多丽工业区做网站搜狗站长平台验证网站
  • 建设盗号网站的模块seo人才
  • 做的最好的政府部门网站免费的舆情网站入口在哪
  • 徐州网站制作怎样上海网站优化
  • 燕窝网站怎么做做seo需要用到什么软件
  • 龙之向导外贸网站怎么样百度保障平台 客服
  • 中山模板建站公司龙岗网站建设
  • 三级网站菜单网络营销的seo是做什么的