FAQ
Jiaojinxing (讨论 | 贡献) (以“ SylixOS 输入子系统 input_report_abs 是 linux 的函数,它把输入事件上报到内核,SylixOS无对应的 API,但 SylixOS 有一个 xinput 内核模...”为内容创建页面) |
|||
(未显示3个用户的20个中间版本) | |||
第1行: | 第1行: | ||
− | + | '''Q: 问题?''' | |
− | + | '''A: '''回复。 | |
− | “监听”你可以理解为打开设备文件、select 等待设备可读、然后读设备,也就说是输入设备不用主动上报输入事件到内核(因为 xinput | + | |
+ | '''Q: xinput 内核模块的用途是什么?输入设备的驱动应该如何编写?''' | ||
+ | |||
+ | '''A: '''input_report_abs 是 linux 的函数,它把输入事件上报到内核,SylixOS 无对应的 API。 | ||
+ | |||
+ | 但 SylixOS 有一个 xinput 内核模块,xinput 内核模块“监听”多个输入设备(如鼠标、触摸屏、键盘)。 | ||
+ | |||
+ | “监听”你可以理解为打开设备文件、select 等待设备可读、然后读设备,也就说是输入设备不用主动上报输入事件到内核(因为 xinput 内核模块会主动读)。 | ||
在输入设备的设备驱动里需要做的事件就是等待事件发生(如触摸屏按下),然后获得 x、y 坐标和压力值,并填充到 touchscreen_event_notify 类型的事件结构, | 在输入设备的设备驱动里需要做的事件就是等待事件发生(如触摸屏按下),然后获得 x、y 坐标和压力值,并填充到 touchscreen_event_notify 类型的事件结构, | ||
− | 最后调用 SEL_WAKE_UP_ALL(&ptsDev->TS_selwulList, SELREAD); 唤醒所有等待可读的线程(如 xinput | + | 最后调用 SEL_WAKE_UP_ALL(&ptsDev->TS_selwulList, SELREAD); 唤醒所有等待可读的线程(如 xinput 内核模块的线程)。 |
+ | |||
+ | xinput 内核模块的线程被唤醒后,然后读输入设备,读出来的是 touchscreen_event_notify 类型的事件结构。 | ||
+ | |||
+ | xinput 内核模块解决了多同类型输入设备和输入设备热挺拔的问题。 | ||
+ | |||
+ | |||
+ | '''Q: 内核里调试输出使用 printk?''' | ||
+ | |||
+ | '''A: '''正确,不能使用 printf,使用 printk 要带消息的等级,如 KERN_ERR。 | ||
+ | |||
+ | |||
+ | '''Q: 屏幕校准程序在哪里?''' | ||
+ | |||
+ | '''A: '''/apps/mousecalibration/mousecalibration | ||
+ | |||
+ | |||
+ | '''Q: 在哪里查询RealCoder版本更新信息?''' | ||
+ | |||
+ | '''A: '''BBS中有Realcoder的changelog,网址:http://bbs.sylixos.com/forum.php?mod=viewthread&tid=56&page=1&extra=#pid215 | ||
+ | |||
+ | |||
+ | '''Q: 哪里可以查询到SylixOS应用层API使用方法?''' | ||
+ | |||
+ | '''A: '''如果使用posix标准API,请查询相关posix标准。推荐方法:在谷歌中搜索“API名称 opengroup”。 | ||
+ | |||
+ | |||
+ | '''Q: 驱动程序挂载后无法使用?''' | ||
+ | |||
+ | '''A: '''首先请运行lsmod命令查看模块是否已经挂载上了。 | ||
+ | |||
+ | |||
+ | '''Q: SylixOS支持那些处理器平台?''' | ||
+ | |||
+ | '''A: '''目前社区版本支持ARM9以上处理器平台,裁剪后的SylixOS lite版本可支持Cortex-M系列处理器。x86和mips的支持工作还在进行中。 | ||
+ | |||
+ | |||
+ | '''Q: SylixOS怎么设置系统RTC时间''' | ||
+ | |||
+ | '''A: '''第一种方法,使用shell命令 | ||
+ | :hwclock --systohc 系统时间同步到rtc | ||
+ | :hwclock --hctosys rtc时间同步到系统 | ||
+ | |||
+ | :第二种方法,在程序中调用api实现: | ||
+ | :sysToRtc() 系统时间同步到rtc | ||
+ | :rtcToSys() rtc时间同步到系统 | ||
+ | |||
+ | :更为详细的RTC API可查看源码”SylixOS/system/device/hwrtc/hwrtc.h” | ||
+ | |||
+ | |||
+ | '''Q: 开源工具链和商业工具链的区别?''' | ||
+ | |||
+ | '''A: '''开源ARM工具链针对Cortex-M系列处理器优化,商业ARM工具链针对Cortex-A系列处理器优化, | ||
+ | |||
+ | 开源ARM工具链在编译Cortex-A系列处理器的动态库和应用程序时会有问题,提示链接出错,而商业ARM工具链解决了这个问题。 | ||
+ | |||
+ | 此外,商业ARM工具链还优化和修正了一些GCC的内建库。 | ||
+ | |||
+ | |||
+ | '''Q: sylixos里面多个任务都需要周期运行的话,使用rms方式调度和使用硬件定时器+信号量阻塞方式调度,那种更节省CPU资源呢?''' | ||
+ | |||
+ | '''A: '''使用硬件定时器+信号量阻塞方式调度更省CPU资源 | ||
+ | |||
+ | |||
+ | '''Q: EDF调度算法,SylixOS是否支持?''' | ||
+ | |||
+ | '''A: '''就是根据任务截止期限的急迫性,来动态修改任务的优先级,以保证最紧迫的任务能够及时执行。目前,不支持,考虑加 | ||
+ | |||
+ | |||
+ | '''Q: sylixOS的任务切换代码,不同arm内核都是一样的?''' | ||
+ | |||
+ | '''A: '''同体系结构的都是一样的,只有像cache,mmu,fpu等有区别 |
2015年8月10日 (一) 10:15的最后版本
Q: 问题?
A: 回复。
Q: xinput 内核模块的用途是什么?输入设备的驱动应该如何编写?
A: input_report_abs 是 linux 的函数,它把输入事件上报到内核,SylixOS 无对应的 API。
但 SylixOS 有一个 xinput 内核模块,xinput 内核模块“监听”多个输入设备(如鼠标、触摸屏、键盘)。
“监听”你可以理解为打开设备文件、select 等待设备可读、然后读设备,也就说是输入设备不用主动上报输入事件到内核(因为 xinput 内核模块会主动读)。
在输入设备的设备驱动里需要做的事件就是等待事件发生(如触摸屏按下),然后获得 x、y 坐标和压力值,并填充到 touchscreen_event_notify 类型的事件结构,
最后调用 SEL_WAKE_UP_ALL(&ptsDev->TS_selwulList, SELREAD); 唤醒所有等待可读的线程(如 xinput 内核模块的线程)。
xinput 内核模块的线程被唤醒后,然后读输入设备,读出来的是 touchscreen_event_notify 类型的事件结构。
xinput 内核模块解决了多同类型输入设备和输入设备热挺拔的问题。
Q: 内核里调试输出使用 printk?
A: 正确,不能使用 printf,使用 printk 要带消息的等级,如 KERN_ERR。
Q: 屏幕校准程序在哪里?
A: /apps/mousecalibration/mousecalibration
Q: 在哪里查询RealCoder版本更新信息?
A: BBS中有Realcoder的changelog,网址:http://bbs.sylixos.com/forum.php?mod=viewthread&tid=56&page=1&extra=#pid215
Q: 哪里可以查询到SylixOS应用层API使用方法?
A: 如果使用posix标准API,请查询相关posix标准。推荐方法:在谷歌中搜索“API名称 opengroup”。
Q: 驱动程序挂载后无法使用?
A: 首先请运行lsmod命令查看模块是否已经挂载上了。
Q: SylixOS支持那些处理器平台?
A: 目前社区版本支持ARM9以上处理器平台,裁剪后的SylixOS lite版本可支持Cortex-M系列处理器。x86和mips的支持工作还在进行中。
Q: SylixOS怎么设置系统RTC时间
A: 第一种方法,使用shell命令
- hwclock --systohc 系统时间同步到rtc
- hwclock --hctosys rtc时间同步到系统
- 第二种方法,在程序中调用api实现:
- sysToRtc() 系统时间同步到rtc
- rtcToSys() rtc时间同步到系统
- 更为详细的RTC API可查看源码”SylixOS/system/device/hwrtc/hwrtc.h”
Q: 开源工具链和商业工具链的区别?
A: 开源ARM工具链针对Cortex-M系列处理器优化,商业ARM工具链针对Cortex-A系列处理器优化,
开源ARM工具链在编译Cortex-A系列处理器的动态库和应用程序时会有问题,提示链接出错,而商业ARM工具链解决了这个问题。
此外,商业ARM工具链还优化和修正了一些GCC的内建库。
Q: sylixos里面多个任务都需要周期运行的话,使用rms方式调度和使用硬件定时器+信号量阻塞方式调度,那种更节省CPU资源呢?
A: 使用硬件定时器+信号量阻塞方式调度更省CPU资源
Q: EDF调度算法,SylixOS是否支持?
A: 就是根据任务截止期限的急迫性,来动态修改任务的优先级,以保证最紧迫的任务能够及时执行。目前,不支持,考虑加
Q: sylixOS的任务切换代码,不同arm内核都是一样的?
A: 同体系结构的都是一样的,只有像cache,mmu,fpu等有区别