2 模块介绍 2.1 模块功能介绍 Linux 内核中,UART 驱动的结构图 1 所示, 可以分为三个层次: 图 2-1: Linux UART 体系结构图 Sunxi UART Driver...Sunxi 硬件平台中,UART 控制器的时钟源选择、配置略有不同,总体上的时钟关系如下: 图 3-6: 时钟说明 UART 控制器会对输入的时钟源进行分频,最终输出一个频率满足(或近似)UART...如果要提高UART 的时钟就要将 APB2 的时钟源设置为 PLL_PERIPH。...和 50M 等,所以需要在设备树里修改 uart2 时钟: linux-4.9 修改波特率如下: device_type = "uart2"; reg = <0x0 0x05000800...如果我们修改了 APB2 时钟,可能会对 uart0 有影响,启动串口会出现乱码,那么我们最好也将 uart0 的时钟配置为 50M 时钟。
Linux有2个时钟,硬件时钟、系统时钟。
文章目录 1 概述 2 Tina系统裁剪简介 2.1 boot0裁剪 2.2 uboot裁剪 2.3 内核裁剪 2.3.1 删除不使用的功能 2.3.2 删除不使用的驱动 2.3.3 修改内核源代码 2.3.3.1...系统经过裁剪过后,通常也会提升启动速度以及减少内存占用。 本文介绍TinaLinux中系统裁剪的方法,为有裁剪需求的使用者提供参考。...对于大尺寸的裁剪效果往往比小尺寸的裁剪效果明显,比如rootfs裁剪1M可能很容易,对于uboot来说,则非常困难。 因此,后续主要介绍kernel以及rootfs的裁剪。...2.3 内核裁剪 通常关于Linux内核裁剪主要有如下方法: 删除不使用的功能。如符号表、打印、调试等功能。 删除不使用的驱动。 修改内核源代码。 内核压缩。...Building Embedded Linux Systems [M] [3] Michael Opdenacker.
chips/t113/configs/evb1/sys_config.fex 中的 uart_debug_port 修改前: [uart_para] uart_debug_port = 0 uart_debug_tx...= port:PF02 uart_debug_rx = port:PF04 修改后 [uart_para...] uart_debug_port = 0 uart_debug_tx = port:PE02 uart_debug_rx = port:PE03...> ^ ^ PE2脚 引脚功能6(查阅datasheet得知) 修改设备树(Linux使用的串口输出) 路径:device/config/chips.../t113/configs/evb1/board.dts 修改前 uart0_pins_a: uart0_pins@0 { /* For EVB1 board */ pins = "PF2", "PF4
场景二:使用UART3,需要从UART0改为UART3(PB6,PB7) 修改sys_config.fex(BOOT0与Uboot的串口) sys_config.fex 的路径是 device/config.../chips/t113/configs/evb1/sys_config.fex 中的 uart_debug_port 修改前: [uart_para] uart_debug_port = 0 uart_debug_tx...] uart_debug_port = 3 uart_debug_tx = port:PB06 uart_debug_rx = port:PB07... 修改设备树(Linux使用的串口输出) 路径:device/config/chips/t113/configs/evb1/board.dts 修改前 uart3..."; }; &uart0 { pinctrl-names = "default", "sleep"; pinctrl-0 = ; pinctrl-1 = <&uart0
一晃20多年过去了,Linux 已经有了太大的变化,内核裁剪的技术和方式也有了较大的不同。...Linux 的内核裁剪是为了减少目标应用中不需要的内核代码,在安全性和高性能(快速启动时间和减少内存占用)方面有着显著的好处。但是,现有的内核裁剪技术有其局限性,有没有内核裁剪的框架化方法呢?...关于内核裁剪 近年来,Linux操作系统在复杂性和规模上都在增长。然而,一个应用程序通常只需要一部分 OS 功能,众多的应用需求导致了Linux内核的膨胀。...小结 由于操作系统内核的不稳定性、时效性较差、完整性问题以及需要人工干预等原因,Linux内核裁剪技术没有得到广泛的应用。...了解了现有技术的局限性,尝试提出一个Linux内核裁剪框架,或许可以解决这些问题。
所以时钟同步在大数据里被广泛应用且必不可少的一步。 二、了解时间 在Linux系统中,时间分为两部分:系统时间和硬件时间。默认情况下,系统时间和硬件时间会以异步的方式进行,互不干扰。...三、了解时区 在Linux系统中, /usr/share/zoneinfo目录下存在很多时区,其中 Asia/Shanghai代表中国时区,如果需要更改时区,仅需做个软链接到 /etc目录,软链名字为...使用NTP的目的是对网络内所有具有时钟的设备进行时钟同步,使网络内所有设备的时钟保持一致,从而使设备能够提供基于统一时间的多种应用。...对于运行NTP的本地系统,既可以接收来自其他时钟源的同步,又可以作为时钟源同步其他的时钟,并且可以和其他设备互相同步。...五、NTP时间同步方案选择 NTP同步方式在linux下一般两种:使用ntpdate命令直接同步和使用NTPD服务平滑同步。有什么区别呢,简单说下,免得时间长了,概念又模糊。
一文搞懂 | Linux 时钟子系统 Clock 时钟就是 SoC 中的脉搏,由它来控制各个部件按各自的节奏跳动。比如,CPU主频设置,串口的波特率设置,I2S的采样率设置,I2C的速率设置等等。...这些不同的clock设置,都需要从某个或某几个时钟源头而来,最终开枝散叶,形成一颗时钟树。可通过 cat /sys/kernel/debug/clk/clk_summary 查看这棵时钟树。
写这篇文章的原因:因为在linux开发串口应用的时候,遇到了问题,让遇到相同问题的人少走点弯路: ①读串口数据的时,需要接受换行符才能返回。...Linux 没有实现这一位,总是将它视为已设置。 ②c_oflag: OPOST:启用具体实现自行定义的输出处理。...FLUSHO:(不属于 POSIX; Linux 下不被支持) 输出被刷新。这个标志可以通过键入字符 DISCARD 来开关。...main( int argc, char *argv[]) { int fd; int ret; char buff[1024]; char senddata[] = "uart...fd= open("/dev/ttyS2", O_RDWR | O_NOCTTY | O_NONBLOCK); if(fd <= 0) { printf("uart
前言 Ubuntu系统默认的时钟同步服务器是ntp.ubuntu.com,Debian则是0.debian.pool.ntp.org等, 各Linux发行版都有自己的NTP官方服务器。...身在中国,使用这些都会有高延迟,但对时钟同步这件事来说影响不大。 在某些环境下,比如公司内网、云上子网等,是与互联网隔绝的。这时要想做时钟同步,就只能自己配置了。...本文介绍如何自己配置时钟同步,不介绍如何自建NTP服务器。 安装 一般timesync是预装的。如果没有,可以使用以下命令手动安装。...使用timedatectl可以查看到更多时钟同步相关信息。
桌面锁屏时钟里的桌面美化功能非常多,并且也都很实用,不仅可以帮助用户把手机桌面设置的更加简洁,查找东西变得更方便,而且用户还能够使用自定义设置的方式来将自己手机桌面的内容,进行不同的展示,桌面锁屏时钟app...桌面锁屏时钟优势 1.一款极简实用时钟,适合每一个喜欢简约的你。 2.主界面是自带时间、日期、天气温度的LED电子数字时钟。 3.经典的动态翻页效果,丰富的皮肤选择。...桌面锁屏时钟特色 1.你可以通过桌面锁屏时钟快速的了解当前的时间信息。 2.添加每天的闹钟提醒以后,就可以让自己准时的起床了。...3.在桌面锁屏时钟中设置自己的日程提醒安排,让APP提醒您不忘记重要的事务。 4.使用桌面锁屏时钟可以练习自己的专注度,帮助您专注的完成每一件事。...6.可以根据自己的个性需求,更换时钟的智兔皮肤。 桌面锁屏时钟功能 1.为您的手机桌面提供了一个时钟,清楚的知道时间信息。 2.就算锁屏也可以浏览时间,让您可以成为一个有时间观念的人。
文章目录 Tina_Linux_系统裁剪_开发指南 1 概述 2 Tina系统裁剪简介 2.1 boot0裁剪 2.2 uboot裁剪 2.3 内核裁剪 2.3.1 删除不使用的功能 2.3.2...Tina_Linux_系统裁剪_开发指南 1 概述 编写目的: 嵌入式产品往往为了压缩成本而使用较小的flash存储器,因此可能需要对系统进行裁剪来减少对flash的占用。...系统经过裁剪过后,通常也会提升启动速度以及减少内存占用。 本文介绍TinaLinux中系统裁剪的方法,为有裁剪需求的使用者提供参考。...对于大尺寸的裁剪效果往往比小尺寸的裁剪效果明显,比如rootfs裁剪1M可能很容易,对于uboot来说,则非常困难。 因此,后续主要介绍kernel以及rootfs的裁剪。...2.3 内核裁剪 通常关于Linux内核裁剪主要有如下方法: 删除不使用的功能。如符号表、打印、调试等功能。 删除不使用的驱动。 修改内核源代码。 内核压缩。
1 引言 串口是我们实际工作中经常使用的一个接口,比如我们在Linux下使用的debug串口,它用来登录Linux系统,输出log。...2) 2根USB转RS232线,一个用来连接板子的debug串口UART0,另外一个用来连接板子上的串口UART1. 2.2.软件 1) 我们在上一篇《Linux学习系列六:操作GPIO》的基础上改动下...Linux内核配置,生成新的970uimage并烧写到板子里。...5 UART操作 5.1.命令行操作 我们将板子上的两个串口同时和PC机连接,通过debug串口登录Linux系统操作UART1,PC端打开串口调试助手,选择UART1对应的串口,这样板子通过UART1...6 结束语 本期相关的资料在链接: https://github.com/TopSemic/NUC972_Linux 07 Lesson7 操作UART 中。
3.2.1.设置串口波特率产生器的时钟源([11:10]) 之前在【S3C2440⑤】S3C2440时钟体系(https://blog.csdn.net/Mculover666/article/details.../88169727)中进行实验设置了时钟PCLK=50Mhz,所以在此基础上选择PCLK作为串口UART0的波特率发生器的时钟来源: ?...bsp_uart_scan.o main.o arm-linux-ld -Ttext 0 start.o bsp_uart_scan.o main.o -o $(TARGET).elf start.o...:start.s arm-linux-gcc -c start.s $(CFLAGS) -o start.o bsp_uart_scan.o:bsp_uart_scan.c arm-linux-gcc...-c bsp_uart_scan.c $(CFLAGS) -o bsp_uart_scan.o main.o:main.c arm-linux-gcc -c main.c $(CFLAGS)
Linux内核版本: 3.5 1.1 Linux下RTC时间的读写分析 1.1.1 系统时间与RTC实时时钟时间 Linux系统下包含两个时间:系统时间和RTC时间。...1.1.2 Linux内核RTC实时时钟配置查看与选择: 进入到内核根目录下,输入: make menuconfig 进入到内核配置菜单: 根据选项进入到RTC实时驱动菜单: Device Drivers...内核默认选择CPU本身自带的RTC作为系统实时时钟。 驱动源码\linux-3.5\drivers\rtc\ rtc-s3c.c是三星公司编写的RTC驱动。...RTC框架注册函数 struct rtc_device *rtc_device_register( const char *name, //RTC时钟名称 struct device *dev, /...上面代码都是模拟时钟,学习RTC框架的用法,下面的的代码就加入了实际的RTC硬件,实现完整的RTC计时。
在本教程中,我将演示如何在 GIMP 中快速裁剪图像而又不影响精度。让我们一起来看看吧。 如何在 GIMP 中裁剪图像 方法 1 裁剪只是一种将图像修整成比原始图像更小区域的操作。...裁剪图像的过程很简单。...你可以通过“工具”面板访问“裁剪工具”,如下所示: image.png 你还可以通过菜单访问裁剪工具:“ 工具 → 变形工具 → 裁剪(Tools → Transform Tools → Crop)”...选定完区域后,你只需按键盘上的回车键即可进行裁剪。 如果你想重新开始或者不裁剪,你可以按键盘上的 Esc 键。...然后,你可以使用与“裁剪工具”相同的方式高亮选区,并调整选区。选择好后,可以通过以下方式裁剪图像来适应选区:“ 图像 → 裁剪为选区(Image → Crop to Selection)”。
Clock 时钟就是 SoC 中的脉搏,由它来控制各个部件按各自的节奏跳动。比如,CPU主频设置,串口的波特率设置,I2S的采样率设置,I2C的速率设置等等。...这些不同的clock设置,都需要从某个或某几个时钟源头而来,最终开枝散叶,形成一颗时钟树。可通过 cat /sys/kernel/debug/clk/clk_summary 查看这棵时钟树。
编译程序 在源码根目录下输入命令make -C ports/stm32 如果不指定BOARD,则默认编译的是ports/stm32下的PYBV10板子,而我们需要的是能在H743上跑,所以需要裁剪移植一个对...主要有5个文件,而我们就需要修改这里面的文件 首先修改时钟为25000000,主要是修改stm32h7xx_hal_conf.h文件 ?...修改mpconfigboard.h 将时钟修改为如下配置,可以复制我们之前IAR工程下的时钟配置。 ?...修改其他管脚,这一节我们只以修改三个LED和UART1等管脚为例,在文档的下一个版本更新中,会更新所有用到的硬件管脚,还是在这个文件中继续修改对应的硬件管脚 ? ?...保存退出 修改pins.csv文件 添加LED和UART1的管脚 ? ? ? 保存退出。 因为我们是参照的NUCLEO_H743ZI,所以mpconfigboard.mk文件不用修改。
色温调节和手机控制,身价也涨了几倍,该智能台灯如图 2.1.1 所示,功能如下: 可以根据外部光照情况,自动调整台灯亮度、色温; 可以手动调节台灯亮度、色温; 一键切换到读写场景模式和阅屏场景模式; 支持番茄时钟...该模块封装好了Wi-Fi协议,用户只需要通过SPI/SDI、I2C或UART与模块连接,即可控制Wi-Fi收发数据。...接口发送给主控MCU,主控MCU解析指令后,控制PWM输出修改占空比,调整亮度和色温;用户通过按键设置为番茄时钟模式,主控MCU则利用自身定时器计算时间,当为25分钟时,控制PWM输出修改占空比,调整亮度和色温...电视盒子的整体框图比较简单,但其难度不低,一般运行Linux/Android系统,无论是软件复杂度还是硬件复杂度,都比一般的MCU项目复杂。...以应用为中心,以计算机技术为基础,软件/硬件可裁剪,实现应用需要的功能; 对功能、可靠性、成本、体积、功耗有一定的要求; 实现对其它设备进行控制、监视或管理的功能; 简单的说,除了通用计算机(读者使用的电脑
Linux内核时钟系统和定时器实现 Linux 2.6.16之前,内核只支持低精度时钟,内核定时器的工作方式: 系统启动后,会读取时钟源设备(RTC, HPET,PIT…),初始化当前系统时间; 内核会根据...所以说这之前,linux只能支持ms级别的时钟,随着时钟源硬件设备的精度提高和软件高精度计时的需求,有了高精度时钟的内核设计。...Linux 2.6.16 ,内核支持了高精度的时钟,内核采用新的定时器hrtimer,其实现逻辑和Linux 2.6.16 之前定时器逻辑区别: hrtimer采用红黑树进行高精度定时器的管理,而不是时间轮...上图1是Linux 2.6.16以来内核定时器实现的结构, 新内核对相关的时间硬件设备进行了统一的封装,定义了主要有下面两个结构: 时钟源设备(closk source device):抽象那些能够提供计时功能的系统硬件...基于此,就出现了多级时间轮,也就是linux2.6.16之前内核所采用的定时器的实现方式。
领取专属 10元无门槛券
手把手带您无忧上云