我正在制作一个从天线发出40khz信号的项目。 我发现信号不太准确,所以我决定尝试一个实时内核。
我在Raspberry-Pi 2B上运行Raspbian Jessie。 干净安装后,脚本运行没有任何问题。 可以运行bcm2835_delayMicroseconds。
我按照本教程http://www.frank-durr.de/?p=203编译并安装了RT内核。 但是,该脚本无法再成功运行。 显示“高睡眠”后,它被举起。
这是代码段:
class myNavigationController: UINavigationController {
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) {
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
}
...
编译内核时是否会遗漏任何内容?
答案 0 :(得分:1)
要使用PREEMPT_RT,您只需:
make oldconfig
)make menuconfig
)。 因此,不需要采取特别行动。
然后,如果性能仍然不足,您可能需要调整特定IRQ线程的优先级。
根据您的具体错误,似乎新内核的配置与当前内核不同(例如,未启用GPIO)。
答案 1 :(得分:1)
我刚刚看到并记住了这个帖子。 大约半年前,我想从Raspberry生成40khz。 但最后我发现我使用的是错误的工具。 我相信Raspberry无法处理这样的任务,因为它运行的是操作系统。 我切换到Arduino,问题立即得到解决,没有任何问题。 使用正确的工具完成任务非常重要!