笔记:移植xenomai到nuc972

xenomai是一个实时操作系统,想要使用它,先要移植I-pipe补丁

补丁在xenomai / ipipe-arm · GitLab

我的内核是4.4-248的,合并上去会有几个小错误,随便改改就好

编译内核没有报错之后,接下来需要修改arch/arm/mach-nuc970/time.c

修改方法参考补丁里面其它设备的定时器驱动,就是加一个注册tsc的接口

#ifdef CONFIG_IPIPE
258     tsc_info.freq =rate;
259     tsc_info.u.counter_paddr=(unsigned long)NUC970_PA_TIMER+0x18;
260     tsc_info.counter_vaddr=(unsigned long)REG_TMR_TDR1;
261     printk(KERN_INFO"vaddr=%x\n",tsc_info.counter_vaddr);
262     __ipipe_tsc_register(&tsc_info);
263     nuc970_itimer.irq=IRQ_TMR0;
264     nuc970_itimer.min_delay_ticks = 3;
265     nuc970_itimer.ack=nuc970_timer0_ack;
266 #endif /* CONFIG_IPIPE */

这里有个细节,tsc_info.u.counter_paddr要填时钟源的真实物理地址,tsc_info.counter_vaddr是虚拟地址,

就这么点细节,困扰了我两周,从内核的汇编一直扒到了应用层,才扒出来

接着就是修改arch/arm/kernel/ipipe_tsc.c,需要添加一个__ipipe_freerunning_24,因为972的定时器数据是24位的,加完之后,还需要在arch/arm/ker/ipipe_tsc_asm.S里面添加对应的汇编代码,汇编代码参考32位的,只是多了一个移8位的操作

整完之后,开始编译xenomai了,安装步骤参考Installing_Xenomai_3 · Wiki · xenomai / xenomai · GitLab

编译完成之后打包复制到文件系统,我编译安装的目录为/opt/arm/xenomai

移到板子上也是这个目录,不然会找不到库

执行测试程序/opt/arm/xenomai/bin/xeno-test,我这会报几个问题,原因是没有把实时驱动都装上

执行/opt/arm/xenomai/bin/latency时内核会崩溃,原因同上

后面我重新编译了内核,配置xenomai,将那些实时驱动都配置上了,再次运行以上两个测试程序时,终于可以正常打印了,运行过程中偶尔会崩溃,原因可能是内存不够吧,我将自己的应用程序全部关闭之后再运行,就没报错了

看起来移植并不难,但每一个点都浪费了大量的时候去调试,才确认下来的,当烧录都有100遍啊,nand的性能都直线下降了...之前加载系统只要6秒,现在10秒打上..

接下来就可以手撸实时应用了,具体写什么应用还不知道,慢慢摸索吧

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/39125.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学习Vue:数据绑定的基本概念

在 Vue.js 中,Vue 实例是您构建应用程序的核心。它允许您将数据和界面连接起来,实现动态的数据绑定,使您的应用程序能够根据数据的变化自动更新界面。让我们来深入了解 Vue 实例与数据绑定的基本概念。 Vue 实例与数据绑定 什么是 Vue 实例&…

OPC【2】——Relationships

引言 Relationships由一系列Relationship构成。将Abstract Package看做是一个图数据结构,则Relationships是图数据中的边集合。 Package Relationships 对于Package Relationships,其所有引用关系的source对象为Abstract Package,或者看…

【Python机器学习】实验10 支持向量机

文章目录 支持向量机实例1 线性可分的支持向量机1.1 数据读取1.2 准备训练数据1.3 实例化线性支持向量机1.4 可视化分析 实例2 核支持向量机2.1 读取数据集2.2 定义高斯核函数2.3 创建非线性的支持向量机2.4 可视化样本类别 实例3 如何选择最优的C和gamma3.1 读取数据3.2 利用数…

Open3D 最小二乘拟合平面(SVD分解法)

目录 一、算法原理二、代码实现三、结果展示1、点云2、拟合结果四、优秀博客本文由CSDN点云侠原创,原文链接。爬虫网站自重。 一、算法原理 本文实现矩阵奇异值分解方法的最小二乘拟合平面。原理如下: 对于得到的 n n

欧拉函数(质因子分解)

思路: (1)欧拉函数:输入n则输出1~n中与n互质的数的个数。 (2)计算公式: (3)证明:(容斥原理)对于n个数,先分别摘除所有被pi整除的数,…

亿信ABI有什么不同,来看最新DEMO演示

为了给用户营造更好的体验环境,提供更丰富、更完善的服务,亿信华辰旗下核心产品亿信ABI DEMO再次上新啦!本次亿信ABI DEMO环境在原有基础上焕新升级,带来了全新的主视觉界面、丰富的行业应用和功能演示DEMO,我们一起来…

季度到季度的组件选择

组件&#xff1a;<template><div class"quarter"><div class"input-wrap" id"closeId" mouseover"handler" click.stop"btn" :style"{color:colorItem}"><i class"el-icon-date"&…

【Java】BF算法(串模式匹配算法)

☀️ 什么是BF算法 BF算法&#xff0c;即暴力算法&#xff0c;是普通的模式匹配算法&#xff0c;BF算法的思想就是将目标串S的第一个与模式串T的第一个字符串进行匹配&#xff0c;若相等&#xff0c;则继续比较S的第二个字符和T的第二个字符&#xff1b;若不相等&#xff0c;则…

【计算机视觉|生成对抗】用深度卷积生成对抗网络进行无监督表示学习(DCGAN)

本系列博文为深度学习/计算机视觉论文笔记&#xff0c;转载请注明出处 标题&#xff1a;Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks 链接&#xff1a;[1511.06434] Unsupervised Representation Learning with Deep Conv…

腾讯云CVM服务器竞价实例是什么?和按量计费有什么区别?

腾讯云服务器CVM计费模式分为包年包月、按量计费和竞价实例&#xff0c;什么是竞价实例&#xff1f;竞价实例和按量付费相类似&#xff0c;优势是价格更划算&#xff0c;缺点是云服务器实例有被自动释放风险&#xff0c;腾讯云服务器网来详细说下什么是竞价实例&#xff1f;以及…

NLP——操作步骤讲义与实践链接

数据集与语料 语料是NLP的生命之源&#xff0c;所有NLP问题都是从语料中学到数据分布的规律语料的分类&#xff1a;单语料&#xff0c;平行语料&#xff0c;复杂结构 语料的例子&#xff1a;Penn Treebank, Daily Dialog, WMT-1x翻译数据集&#xff0c;中文闲聊数据集&#xf…

大数据:Numpy基础应用详解

Numpy基础应用 Numpy 是一个开源的 Python 科学计算库&#xff0c;用于快速处理任意维度的数组。Numpy 支持常见的数组和矩阵操作&#xff0c;对于同样的数值计算任务&#xff0c;使用 NumPy 不仅代码要简洁的多&#xff0c;而且 NumPy 的性能远远优于原生 Python&#xff0c;…

mysql-5.5.62-win32安装与使用

1.为啥是这个版本而不是当前最新的8.0&#xff1f; 因为我要用32位。目前mysql支持win32的版本最新只到5.7.33。 首先&#xff0c;到官网MySQL :: MySQL Downloads 然后选 选一个自己喜欢的版本就好。我这里是如标题版本。下载32位的zip。然后回来解压。 完了创建系统环境变…

项目实施方案案例模板-拿来即用

《项目实施方案》实际案例模板&#xff0c;拿来即用&#xff0c;原件可获取。 项目背景 项目目标 项目范围 项目总体计划 项目组织架构 5.1. 项目职责分工 项目风险点 6.1. 项目风险分析 6.2. 项目实施关键点 项目管理规范 7.1. 项目实施约束 7.2. 项目变更冻结 7…

(三) CUDA 硬件实现

一组带有on-chip 共享内存的SIMD多处理器 GPU可以被看作一组多处理器, 每个多处理器使用单一指令&#xff0c;多数据架构(SIMD)【单指令流多数据流】 在任何给定的时钟周期内&#xff0c;多处理器的每个处理器执行同一指令&#xff0c;但操作不同的数据 每个多处理器使用以下…

HASH索引,AVL树,B树,B+树的区别?

1. 什么是 Hash 1.1 Hash 函数 Hash 本身其实是一个函数&#xff0c;又被称为散列函数&#xff0c;它可以大幅提高我们对数据的检索效率。因为它是散列的&#xff0c;所以在存储数据的时候&#xff0c;它也是无序的。 Hash 算法是通过某种确定性的算法(例如MD5&#xff0c;S…

virtualBox桥接模式下openEuler镜像修改IP地址、openEule修改IP地址、openEule设置IP地址

安装好openEuler后,设置远程登入前,必不可少的一步,主机与虚拟机之间的通信要解决,下面给出详细步骤: 第一步:检查虚拟机适配器模式:桥接模式 第二步:登入虚拟机修改IP cd /etc/sysconfig/network-scripts vim ifcfg-enpgs3 没有vim的安装或者用vi代替:sudo dnf …

关于consul的下载方法

linux下 sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo sudo yum -y install consulwindow下 https://developer.hashicorp.com/consul/downloads 然后把里面的exe文件放在gopath下就行了 验证…

打造专属花店展示小程序

在当今社会&#xff0c;微信小程序已经成为了各行各业拓展客户资源的利器&#xff0c;而花店行业也不例外。通过打造一个独特的花店小程序&#xff0c;你可以为你的花店带来更多的曝光和客户资源。那么&#xff0c;如何制作一个专属的花店小程序呢&#xff1f;下面我们就来一步…

图像像素梯度

梯度 在高数中&#xff0c;梯度是一个向量&#xff0c;是有方向有大小。假设一二元函数f(x,y)&#xff0c;在某点的梯度有&#xff1a; 结果为&#xff1a; 即方向导数。梯度的方向是函数变化最快的方向&#xff0c;沿着梯度的方向容易找到最大值。 图像梯度 在一幅模糊图…