推荐阅读最新更新时间:2024-03-16 14:50
OK6410A 开发板 (八) 17 linux-5.11 OK6410A start_kernel 功能角度 概览
根据功能对 linux启动过程的分类(注意:arm1176jzfs不支持多核) 对于 arm1176jzfs 的 s3c6410 来说,只有cpu0 1st 和 2nd 都正确 3rd 中跑的 是 所有的进程,包括 0 1 2 ... 第一阶段第二阶段 已经将内核初始化好了,但是还没有开始 大规模的使用内核 第三阶段主要是 进程0 进程1 进程2,负责使用内核的服务
[单片机]
OK6410A 开发板 (八) 112 linux-5.11 OK6410A tmpfs 文件系统 CONFIG_SHMEM=y & CONFIG_TMPFS=y
CONFIG_SHMEM=y & CONFIG_TMPFS=y 相较于 CONFIG_SHMEM=y & CONFIG_TMPFS=n 多了 0a1,2 Press F1 , ? for help 16a19,21 -shmem_acct_size -shmem_file_operations -shmem_get_inode 17a23,25 -shmem_initxattrs -shmem_unacct_size -shmem_vm_ops 23a32 -shmem_initxattrs(struct inode *, const struct xattr *, void
[单片机]
STM32G0开发笔记-1-开发环境搭建之STM32CubeMX
1、下载STM32cubeMX软件,解压 百度网盘下载链接:https://pan.baidu.com/s/1H56511Y_nd-4kDYT_cVh0w 提取码:zvnx 2、安装STM32cubeMX并配置 2.1点击安装,下一步 2.2选择接受条款,下一步 2.3选择安装路径,默认即可 3、选择芯片型号并创建工程 3.1选择由芯片信号生成工程 3.2 选择芯片型号 3.3 配置参数 可以一次选择下图指出的4个选项卡,依次设置引脚的功能、时钟、工程路径等参数。 配置完成后,可以点击右上角的GENERATE CODE按键生成工程代码。 4、生成工程文件 在生成工程代
[单片机]
OK6410A 开发板 (八) 118 linux-5.11 OK6410A linux对arm异常处理的相同部分解析
.section .vectors, ax , %progbits .L__vectors_start: W(b) vector_rst W(b) vector_und W(ldr) pc, .L__vectors_start + 0x1000 W(b) vector_pabt W(b) vector_dabt W(b) vector_addrexcptn W(b) vector_irq W(b) vector_fiq 每种处理方式中相同的部分 // 8个入口 1. 直接定义 2个 vector_rst: ARM( swi SYS_ERROR0 )
[单片机]
s3c2410上搭建QT/Embedded4.8.5开发环境(一)---环境导读
近期参加个比赛,需要用到博创s3c2410的开发板,搭建QT/Embedded的环境,真费了不少功夫,开始想用那个qtopia的桌面的,但是移植老是不成功,后来看看用的是CentOS6.4,但是开发板光盘里提供的,qtopia(版本竟然还是2.1.1)这个东西太老了,已经绝版了。在这里给各位以后开发的兄弟提个醒,qtopia这就是个坑. QT各版本起源 Qt 的版本是按照不同的图形系统来划分的,目前分为四个版本: Win32版,适用于Windows平台; X11版,适合于使用了x系统的各种 linux 和 unix的平台; Mac版,适合与苹果MacOS; embedded版,适合于具有帧缓冲(framebuffer)的l
[单片机]
沁恒CH32V103C8T6开发环境笔记
CH32V103C8T6 CH32V103C8T6是沁恒的RISC-V内核MCU, 基于RISC-V3A处理器, 内核采用2级流水线处理,设置了静态分支预测、指令预取机制,支持DMA. 主要参数如下 CPU: 32位RISC-V3A, RV32IMAC指令集, 最高80MHz, 典型72MHz RAM: 20KB Flash: 64KB BootLoader: 3.75KB 系统引导程序存储区 供电: 2.7V - 5.5V (兼容3.3V和5V) Timer: 通用3, 高级1, 看门狗2, 系统时钟1 ADC: 12bit, 10CH SPI: 2 I2C: 2 UART: 3 USBHD: 1 封装: LQFP48
[单片机]
linux内核模块和驱动程序的编写
linux中的大部分驱动程序,是以模块的形式编写的.这些驱动程序源码可以修改到内核中,也可以把他们编译成模块形势,在需要的时候动态加载.
一个典型的驱动程序,大体上可以分为这么几个部分:
1、注册设备
在系统初启,或者模块加载时候,必须将设备登记到相应的设备数组,并返回设备的主驱动号,例如:对快设备来说调用refister_blkdec()将设备添加到数组blkdev中.并且获得该设备号.并利用这些设备号对此数组进行索引.对于字符驱动设备来说,要使用module_register_chrdev()来获得祝设备的驱动号.然后对这个设备的所有调用都用这个设备号来实现
2、定义功能函数
对于每一个驱动函数来说.都有一
[嵌入式]
AD7888与S3C2410的SPI接口及Linux下嵌入式驱动的实现
串行外围设备接口SPI(serial peripheral interface)总线技术是Motorola公司推出的一种同步串行接口,它允许CPU与TTL移位寄存器、A/D或D/A转换器、实时时钟(RTO)、存储器以及LCD和LED显示驱动器等外围接口器件以串行方式进行通讯。 SPI总线只需3~4根数据线和控制线即可扩展具有SPI接口的各种I/O器件,其硬件功能很强,实现软件相当简单。串行A/D转换器具有电路简单、工作可靠的特点,而ARM芯片被设计用于手持设备以及普通的嵌人式应用的集成系统,将上述两种实用的芯片和SPI总线技术相结合以实现数据采集十分有效。 1 AD7888的功能与使用 AD7888是美国模拟器件公司推出的一款
[嵌入式]