驱动程序中使用编译器是如何知道用了哪个mach

ipqtjmqj 2016-11-23 02:54:45
据说<mach/xxx.h>头文件都是从arch/${ARCH}/mach-XXX/include目录找的,其中

$(ARCH)我找到了,在内核根目录的Makefile里可以设置。

但mach-xxx中的xxx是在哪设置的啊
...全文
549 12 打赏 收藏 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
ipqtjmqj 2016-12-20
  • 打赏
  • 举报
回复
今天看embedde linux primer 1st edition这本书,看到4.3.3节,终于发现,原来是通过命令行传递的 make help可以列出所有的操作 make config是让你选各种配置, 而make xxx_defconfig中就有适合你机器型号的选项。 生成一个隐藏的.config文件, make时还会根据.config文件在include/linux目录下生成autoconf.h头文件。 另外开发板厂家一般会提供生成好的.config文件
sinat_31207515 2016-11-25
  • 打赏
  • 举报
回复
求助 将123456一次压入栈中,在此过程中,可能随时将元素弹出栈,若六个元素出栈顺序是352416,则栈的容量至少是多少?他是怎么实现的?
sinat_31207515 2016-11-25
  • 打赏
  • 举报
回复
这是一道选择题,问的是最少?而是我不明白怎么样才能得到这样的出栈序列(352416)
ipqtjmqj 2016-11-25
  • 打赏
  • 举报
回复
引用 9 楼 sinat_31207515 的回复:
求助 将123456一次压入栈中,在此过程中,可能随时将元素弹出栈,若六个元素出栈顺序是352416,则栈的容量至少是多少?他是怎么实现的?
没看懂,既然是6个元素应该只需要容量为6的栈就行了吧,为什么还要求栈的容量
cocoabird 2016-11-24
  • 打赏
  • 举报
回复
引用 7 楼 ipqtjmqj 的回复:
[quote=引用 5 楼 yuelengdihai 的回复:] [quote=引用 4 楼 ipqtjmqj 的回复:] [quote=引用 3 楼 yuelengdihai 的回复:] 应该是针对不同的硬件厂商采用不同的arch,硬件那么多类型,不可能采用一套arch
arch我知道也,也找到了设置的地方,我问的是mach,同一个arch下又分了很多mach 我查到这篇博文,但没说mach在哪设置[/quote] 这个问题我也没注意到,驱动层和操作系统相对来说是独立的,这个应该在驱动程序里面设置的。举个例子:i/o操作,操作系统提供一个write接口,给驱动层发一个写指令,驱动程序需要自己判断设备类型,读写是否错误,在设备上显示等问题。我感觉mach应该是在驱动程序里mk文件里设置的,不知道分析的对不对[/quote] 终于找到了,原来是在内核根目录下的config1文件里[/quote] 学习了
ipqtjmqj 2016-11-24
  • 打赏
  • 举报
回复
引用 5 楼 yuelengdihai 的回复:
[quote=引用 4 楼 ipqtjmqj 的回复:] [quote=引用 3 楼 yuelengdihai 的回复:] 应该是针对不同的硬件厂商采用不同的arch,硬件那么多类型,不可能采用一套arch
arch我知道也,也找到了设置的地方,我问的是mach,同一个arch下又分了很多mach 我查到这篇博文,但没说mach在哪设置[/quote] 这个问题我也没注意到,驱动层和操作系统相对来说是独立的,这个应该在驱动程序里面设置的。举个例子:i/o操作,操作系统提供一个write接口,给驱动层发一个写指令,驱动程序需要自己判断设备类型,读写是否错误,在设备上显示等问题。我感觉mach应该是在驱动程序里mk文件里设置的,不知道分析的对不对[/quote] 终于找到了,原来是在内核根目录下的config1文件里
ipqtjmqj 2016-11-23
  • 打赏
  • 举报
回复
引用 5 楼 yuelengdihai 的回复:
[quote=引用 4 楼 ipqtjmqj 的回复:] [quote=引用 3 楼 yuelengdihai 的回复:] 应该是针对不同的硬件厂商采用不同的arch,硬件那么多类型,不可能采用一套arch
arch我知道也,也找到了设置的地方,我问的是mach,同一个arch下又分了很多mach 我查到这篇博文,但没说mach在哪设置[/quote] 这个问题我也没注意到,驱动层和操作系统相对来说是独立的,这个应该在驱动程序里面设置的。举个例子:i/o操作,操作系统提供一个write接口,给驱动层发一个写指令,驱动程序需要自己判断设备类型,读写是否错误,在设备上显示等问题。我感觉mach应该是在驱动程序里mk文件里设置的,不知道分析的对不对[/quote] 谢谢解答,我明天再仔细找找
cocoabird 2016-11-23
  • 打赏
  • 举报
回复
引用 4 楼 ipqtjmqj 的回复:
[quote=引用 3 楼 yuelengdihai 的回复:] 应该是针对不同的硬件厂商采用不同的arch,硬件那么多类型,不可能采用一套arch
arch我知道也,也找到了设置的地方,我问的是mach,同一个arch下又分了很多mach 我查到这篇博文,但没说mach在哪设置[/quote] 这个问题我也没注意到,驱动层和操作系统相对来说是独立的,这个应该在驱动程序里面设置的。举个例子:i/o操作,操作系统提供一个write接口,给驱动层发一个写指令,驱动程序需要自己判断设备类型,读写是否错误,在设备上显示等问题。我感觉mach应该是在驱动程序里mk文件里设置的,不知道分析的对不对
ipqtjmqj 2016-11-23
  • 打赏
  • 举报
回复
引用 3 楼 yuelengdihai 的回复:
应该是针对不同的硬件厂商采用不同的arch,硬件那么多类型,不可能采用一套arch
arch我知道也,也找到了设置的地方,我问的是mach,同一个arch下又分了很多mach 我查到这篇博文,但没说mach在哪设置
cocoabird 2016-11-23
  • 打赏
  • 举报
回复
应该是针对不同的硬件厂商采用不同的arch,硬件那么多类型,不可能采用一套arch
ipqtjmqj 2016-11-23
  • 打赏
  • 举报
回复
引用 1 楼 yuelengdihai 的回复:
xxx是啥
说错了,是arch/${ARCH}/mach-XXX/include中的XXX 每个架构下又分不同机器,表示架构的宏ARCH我在内核根目录的Makefile中找到了, 现在就是不知道表示哪个机器的宏的名字,以及定义的位置
cocoabird 2016-11-23
  • 打赏
  • 举报
回复
xxx是啥
源码直接下载地址: https://pan.quark.cn/s/72cdf08acc22 在Android平台中,Ublox GPS驱动程序占据着核心地位,它充当了硬件GPS设备与操作系统之间的关键纽带,确保设备能够有效接收并处理来自卫星的信号,从而输出精确的地理位置数据。本资料将详细阐述Android中Ublox GPS驱动程序的相关知识要点,涵盖其运行机制、修正故障的流程以及如何兼容第三方导航应用如凯立德和道道通的使用。 我们必须先掌握Android的GPS系统构造。Android的GPS机制遵循HAL(硬件抽象层)的架构,该层设置在操作系统内核与硬件设备之间,为上层应用程序提供了标准化的调用接口。在Android系统中,GPS HAL负责处理与硬件设备的交互操作,获取GPS数据,并将其转化为上层应用能够解读的格式。 Ublox作为一家知名的GPS模块生产厂商,其产品被广泛部署在各种移动设备上。针对Ublox GPS模块的Android驱动程序通常由以下几个主要部分构成: 1. **硬件驱动接口**:该部分代码负责实现与Ublox GPS芯片的底层通信,可能通过UART、I2C或SPI等通信协议进行。它负责初始化硬件设备,发送控制指令,接收卫星信号数据。 2. **NMEA协议解析**:Ublox GPS模块遵循NMEA(北美电子海图协会)标准输出一系列数据帧,包括GPGGA、GPGLL等。驱动程序需要解析这些NMEA语句,提取出经度、纬度、高度、速度、时间等关键信息。 3. **位置与时间计算**:从NMEA数据中提取的信息还需要进一步处理,以计算出精确的位置和时间数据。 4. **HAL接口实现**:驱动程序必须遵循Android定义的GPS HAL接口,...

1,323

社区成员

发帖
与我相关
我的任务
社区描述
主要是开发驱动技术
社区管理员
  • 驱动程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧