首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

鸿蒙系统开发教程_韦东山 2-1移植RTOS需要做的事

常见的错误观点是把鸿蒙跟Linux放在一起来对比,这不对: Linux只是一个内核,普通人无法使用 还需要在Linux之上安装各类程序 比如Ubuntu等发行版,它们在Linux内核之上,还有桌面、各类办公软件...)的设置:虚拟地址与物理地址 完善中断子系统 提供系统tick时钟 为串口驱动实现基于中断的读取字符函数 实现存储设备驱动程序 在存储设备上烧录文件系统 3.1 串口相关 与Linux串口驱动相比...对于输出:不使用中断,直接使用查询方式输出。 对于输入:使用中断,我们只需要提供底层硬件相关的代码。 要注意:使用的是虚拟地址。...3.2 MMU设置 MMU2大功能: 3.2.1 权限管理 比如可以把进程A、B的地址空间完全隔离开,它们互不影响 写得差的进程、恶意的进程,不能影响到其他进程 用户程序、内核地址空间完全隔离开:不允许用户直接访问硬件...3.3.1 操作系统"同时"运行多个任务 轮流运行: 3.3.2 串口接收数据的中断 使用串口接收数据时,如果使用"查询"方式,低效并且费电。 一般都使用中断方式。

1K10
您找到你想要的搜索结果了吗?
是的
没有找到

韦东山鸿蒙移植01-移植RTOS需要做的事

常见的错误观点是把鸿蒙跟Linux放在一起来对比,这不对: Linux只是一个内核,普通人无法使用 还需要在Linux之上安装各类程序 比如Ubuntu等发行版,它们在Linux内核之上,还有桌面...)的设置:虚拟地址与物理地址 完善中断子系统 提供系统tick时钟 为串口驱动实现基于中断的读取字符函数 实现存储设备驱动程序 在存储设备上烧录文件系统 3.1 串口相关 与Linux...的串口驱动相比,鸿蒙的串口驱动极大简化了。...3.2 MMU设置 MMU2大功能: 3.2.1 权限管理 比如可以把进程A、B的地址空间完全隔离开,它们互不影响 写得差的进程、恶意的进程,不能影响到其他进程 用户程序、内核地址空间完全隔离开:不允许用户直接访问硬件...3.3.2 串口接收数据的中断 使用串口接收数据时,如果使用"查询"方式,低效并且费电。 一般都使用中断方式。

1.4K41

linux系统学习mysql(一)下载安装mysql,安装

目录 下载安装 打开虚拟机 将下载的mysql安装包上传到Linux里面 创建用户主,以及用户 下载安装 链接:https://pan.baidu.com/s/1Rif-xmVxiNNti7YF8wFZUg...提取码:452b 打开虚拟机 rpm -qa |grep -i mysql RPM是RedHat Package Manger(RedHat软件管理工具), 是一种用于打包及安装工具(就和...Linux里面 1.上传并解压 把mysql-5.7.27-linux-glibc2.12-x86_64.tar 上传到/usr/local/tmp中 解压上传的文件 1# cd /usr/local.../tmp 2# tar zxf mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz 把解压后的文件夹复制到/usr/local/mysql 3# cp -r mysql...-5.7.27-linux-glibc2.12-x86_64 /usr/local/mysql 创建用户主,以及用户 2.创建用户组及用户 创建用户组 4# groupadd mysql 创建用户

2.5K20

Linux 移植到 M1 Mac 真的太难了!

我们还没有实现安装程序,所以目前开发人员只能通过先整安装 macOS,再替换内核的方式来尝试 m1n1和LInux。...但是等一下,这一切都需要串口。但是 M1 的 Mac 哪儿串口?好问题! UART 登场! 对于新系统的底层开发,串口几乎是不可避免的。...为了确保可以在任何系统上引导 Linux五项工作必须完成: CPU 内存管理单元(MMU) 中断控制器 系统时钟 某种控制台,在这里是串口控制台 在绝大多数 AArch64 系统中,前四个非常标准:...Linux 个名为 earlycon 的特性很有用,了它,就能在主串口驱动程序启动之前使用常见的 printk() 函数,但不幸的是,我们的第一批测试并没有走那么远。...这是一个非常复杂且功能强大的中断控制器,许多高级特性,如中断优先级、虚拟化等。如此一来,Linux 就不需要在AArch64系统上实现自己的 irqchips 作为主中断控制器了。

2.9K20

【RTOS训练营】环形缓冲区、AT指令、预习安排和晚课提问

所以什么叫环形缓冲区,你不断的写,不断的读,不断不断的读,r,w会绕着跑好几圈。 二、AT指令 对于at指令,我们也只是使用at指令,来使用外接的WiFi模块。...问: 环形缓冲区和读写一般数组没区别? 答: 没什么区别,主要就是调整读和写的位置,可以从尾部回到头部。 14. 问: 环形缓冲区有没有什么满了触发中断之类的?...问: 其实可以移植一个成熟的唤醒缓冲的程序,比如Linux中的kfifo或者别的? 答: 你可不要去移植Linux里面的那些kfifo,linux考虑的东西太全了,非常庞大。 16....问: 串口中断收发例程中串口发送丢数据根本原因是什么?收的不对吗。 答: 发送是丢数据?这个问题挺容易查: 确认数据是否写入硬件寄存器 UART FIFO是否满了,导致写入无效。 19....在中断服务程序里面,他并不是马上去确定按键。 而是启动一个定时器,说:20ms后处理。 既然是抖动,就是说这个电平在不断的、快速的变化,多次产生中断

89140

linux必要安装杀毒软件吗_linux杀毒软件企业版

据有些Linux用户在Linux操作系统下使用360安全卫士国产系统适配专版反馈称:有时会显示木马,或是误报。...比方在Deepin系统中用商店安装的360安全卫士在扫描时报木马,如下图所示: 误报依据 经验证,这是误报,如果有Linux用户出现相同的情况,可不需要做其他的处理。...5、linux本身中毒概率就小,而且也自带了系统清理,个人认为安装360没有必要啊。 6、Linux作为服务器的主要操作系统,最显著的就是安全、稳定。...比如Linux桌面系统,过去不光是软件少,仅有的那些软件安装也很困难,需要编译安装,解决依赖,一些系统目录不一样的还需要自己查看config找问题。...深度商店就是一个很大的进步,把少有的那些软件做到很方便的安装。其他一些字符编码问题,显卡驱动问题等等,尽量傻瓜化解决。Linux系统很多问题是需要用户看着复杂的网页教程来解决的。

5.4K20

Linux-485收发切换延迟的解决方法

知识储备 解决此问题,需要有如下知识储备: 了解485通信原理 了解Linux终端设备驱动架构,搞清楚板上串口对应的实际驱动源文件 掌握Linux设备驱动中的中断处理机制:顶半部、底半部(tasklet...实现方法 本应用中对应的串口设备驱动文件为linux/drivers/tty/serial/8250/8250_core.c 3.1 由应用程序控制是否打开串口设备的485功能 在串口驱动里切换485方向对性能有一些影响...缕一下代码,找到串口发送的结束时刻:8250串口的收发数据是通过中断方式实现的,串口的结束时刻在中断处理程序中判断, 1) 中断处理函数的注册 serial8250_init()-> serial8250...在Linux支持的多种软中断中,HI_SOFTIRQ具有最高的优先级。...这样会使对485的支持机制更加完善,应用层更多的控制空间。

7.3K30

WPF入门到放弃(四)| 给串口调试助手列表赋值(附调试软件)

工控技术分享平台 尊重原创 勿抄袭 勿私放其他平台 WPF也是我今年刚开始深入去了解,看了不少的学习视频和书籍,受剑神Python入门到放弃的启发,想把这段时间学习内容做个总结,一是因为我相信技术总是需要不断的总结与练习才能有所进步...,二是希望帮助初学者对WPF个初步的了解,大家一起探讨学习进步。...最重要的类 SerialPort 为同步和事件驱动 I/O 提供框架,提供对插针和中断状态的访问,以及对串行驱动程序属性的访问)命名空间,用户可以非常简单地编写少量代码就完成串口的信息收发程序。...具体步骤 工具–>Nuget包管理器(N)–>管理解决方案的Nuget程序包(N) –>浏览,左边搜索System.IO.Ports 选择项目进行安装 安装完成后可以在已安装中查看 定义一个Window..., 前台相应的搜索事件 添加相应的代码 通过虚拟串口添加两个串口,com5,com6 通过搜索串口按钮,可以实现有新增或者删除串口后的,当前串口的情况。

1.1K20

Linux移植的一般过程

汇编代码处主要要做的工作是在内存映射表里添加上串口IO地址的映射,这样就能够操作串口输出调试信息。...一旦temp_print成功输出,并且Linux进入到start_kernel开始的C代码中,就可以把JTAG抛弃,全部使用串口输出调试。...这里主要是要设置linux的命令行启动参数,包括console和earlyconsole两个,将它们设置成你需要输出的串口号,并检查一下串口驱动的代码,比如8250.c和8250_early.c两个文件...printk成功输出之后,下一步调系统时钟中断。这需要熟悉Linux中关于时钟中断的处理代码,网上的相关资料也需要看一看。看懂之后应该不是很难。...调试网卡驱动的时候,要注意实际使用网卡的中断极性。虽然Linux自带有大部分网卡的驱动,但中断极性可能是反的,需要注意。

2.6K10

20_early_printk和earlycon

如果想更早地使用printk函数,比如在安装UART驱动之前就使用printk,这时就需要自己去注册console。...是新的、推荐的方法,在内核已经驱动的前提下,通过设备树或cmdline指定寄存器地址即可。...我们知道,对于console,最主要的是里面的write函数:它不使用中断,相对简单。 所以很多串口console的write函数,只要确定寄存器的地址就很容易实现了。...假设芯片的串口驱动程序,已经在内核里实现了,我们需要根据板子的配置给它提供寄存器地址。 怎么提供?...设备树 cmdline参数 4.2 设置write函数 在Linux内核中,已经完善的earlycon驱动程序,它们使用OF_EARLYCON_DECLARE宏来定义: 问题在于,使用哪一个?

92710

从零手写操作系统之RVOS环境搭建-01

QEMU virt 平台支持运行多种操作系统,包括 Linux、Android 等。...状态寄存器 (Status Register):用于获取串口的状态信息。可以通过读取状态寄存器来了解串口的接收和发送状态,包括是否接收到数据、是否可以发送数据等。...---- NS16550a 的初始化 关闭中断 设置波特率 设置异步数据通信格式 在这里,"关闭中断"指的是禁用串口(UART)的中断功能,即禁止串口触发和处理中断事件。...串口通信中的中断通常用于以下目的: 接收中断:当串口接收到数据时,会触发接收中断,通知处理器新的数据可供处理。 发送中断:当串口发送缓冲区为空时,会触发发送中断,通知处理器可以继续发送新的数据。...通过禁用中断,就是告诉串口不要触发和处理这些中断事件。这样可以避免在初始化期间由于中断的发生而引起的干扰和错误。 禁用中断不会影响串口的数据传输功能,它仅仅是关闭了中断的触发和处理机制。

30430

6-STM32+ESP8266+AIR202基本控制篇功能4-微信小程序扫码绑定GPRS,并通过MQTT和Air202实现远程通信控制(兼容SIM800)

2.安装微信小程序 微信小程序已经发布,用户可使用微信扫描安装 ? 如果有微信小程序经验,可源码安装 ?...① APUConfig 程序 ② 控制页面 ③ 主页 ④ 本人封装的mqtt包 ⑤ mqtt底层包 单片机程序通信运行处理思路 程序使用串口2和GPRS模块通信 串口1作为日志输出口 串口1接收数据采用缓存管理...+空闲中断 串口1发送数据采用环形队列+中断发送 串口2接收数据采用缓存管理+空闲中断 串口2发送数据采用中断发送 串口1打印串口2接收的数据 判断串口2接收的数据以后,直接把数据插入串口1环形队列...串口1打印串口2发送的数据 在串口2调用发送数据的地方,把发送的数据插入串口1环形队列 ?...结语 这节只是大致概括下程序,为已经基础的人提供学习思路 如果没有基础,请按部就班的接着学习

95110

STM32F0单片机快速入门八 聊聊 Coolie DMA

如图,一些存储在 Flash 的数据需要搬运到 RAM 区的一个数组。...跟苦力需要交代清楚的最基本的事情就是:从哪儿搬到哪儿,货物多少,搬一次还是有货物源源不断的到来,需要循环不断的搬。...2.代码 像串口工程代码声明了串口类型的 Handle一样,这里声明了一个 DMA 类型的 Handle 来负责 DMA 模块的处理。...在HAL层驱动中,已经完成了 DMA 中断所要做的基本处理,比如根据中断类型清除相应中断标志等。...3.串口如何使用 DMA 传输 前面的例子是用软件的方式触发 DMA 传输,在应用中经常会用到由某个事件触发的情况。比如通过串口发送,接收中断来触发 DMA 传输。

48830

【收藏转发】从串口驱动到Linux驱动,嵌入式入门必备!

以便读者能对OS原理更深入的了解和更具体的掌握。 在具体分析之前。我们必须对串口。驱动。和Linux操作系统一定的了解。这一阶段我们三个问题需要解决: 1.什么是Linux操作系统。...而如果你选择的是Linux。你几乎可以任意的在计算机上安装软件。运行程序(如果你的内存不是太小。且硬盘交换分区足够的话)。 Linux核心已经将有限的硬件资源发挥到了极致。...正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大。...在这个目录下,可以找到那些不适合放在/bin或/etc目录下的额外的工具 /usr/local:这里主要存放那些手动安装的软件,即不是通过“新立得”或apt-get安装的软件。...相信读者对于Linux下的tty子系统已经一个概观了。下面是这个uart驱动的总图。结合数据结构的调用链。Linux内核完成了驱动模型和特定硬件的分离: ? 串口驱动数据结构总图: ?

3.5K20

5-STM32+ESP8266+AIR202基本控制篇功能3-APP扫码绑定Air202,并通过MQTT和Air202实现远程通信控制(兼容SIM800)

2.安装APP 注:这节的APP和第三节的一样,如果在第三节安装了APP,不用重新安装. ?...2和ESP8266通信 串口1作为日志输出口 串口1接收数据采用缓存管理+空闲中断 串口1发送数据采用环形队列+中断发送 串口2接收数据采用缓存管理+空闲中断 串口2发送数据采用中断发送 串口1...打印串口2接收的数据 判断串口2接收的数据以后,直接把数据插入串口1环形队列 ?...串口1打印串口2发送的数据 在串口2调用发送数据的地方,把发送的数据插入串口1环形队列 ?...结语 这节只是大致概括下程序,为已经基础的人提供学习思路 如果没有基础,请按部就班的接着学习

79220

6-ESP8266 SDK开发基础入门篇--操作系统入门使用

= 0;//串口1接收到的数据个数拷贝 u8 Usart1ReadFlage=0;//串口1接收到一条完整数据 ?...其实就是在满中断里面把数据存到咱定义的数组,在空闲中断里面读出来剩余的数据 然后置位一个标志,说明接收到一条完整的数据了 LOCAL void uart0_rx_intr_handler(void *para...接收到的数据个数 extern u32 Usart1ReadCntCopy;//串口1接收到的数据个数拷贝 extern u8 Usart1ReadFlage;//串口1接收到一条完整数据 处理数据之前先预热一下操作系统...看着是同时亮和灭,其实他们之间延时,就是大约延时个任务调度的时间 其实操作系统是不断的轮询各个任务,不断的挂起任务(让任务停止运行),启动任务 ?...串口处理放到下一节吧 https://www.cnblogs.com/yangfengwu/p/11087558.html

54020
领券