![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux应用编程
文章平均质量分 93
Jacky~~
Learning Linux kernel!
展开
-
Linux应用编程(二十四)——Linux内核移植(二:内核源码结构及Makefile分析)
文章目录内核源码结构Linux Makfile分析决定编译那些文件obj-y用来定义那些文件被编进(built-in)内核。例1obj-m用来定义那些文件被编译成可加载模块(Loadable module)例2例3lib-y用来定义那些文件被编成库文件obj-y、obj-m还可以用来指定要进入的下一层目录。例4怎样编译这些文件怎样连接这些文件,它们的顺序如何。总结内核源码结构Linux内核文件数目将近2万个,除去其他架构CPU的相关文件,支持S3C2410,S3C2440这两款芯片的完整内核文件有1万原创 2022-02-06 19:29:22 · 1634 阅读 · 0 评论 -
Linux应用开发(二十三)——移植Linux内核(一)
文章目录今天是大年初二,祝各位友友们新年快乐,虎年吉祥!前言本系列目标Linux内核下载下载内核源码并上传虚拟机解压查看源码结构Linux版本及特点总结今天是大年初二,祝各位友友们新年快乐,虎年吉祥!前言新的一年,想了想就从Linux内核移植开始吧。过年这几天休息的同时,也在反思。前面学习完了Bootloader的移植。我在想还要不要继续深入下去,还是说巩固底子,去再深入开发板。最终我还是决定进入Linux内核,主要是认为可以先参考熟悉一下,等到开学有老师的指导,更加深入的去学习。话不多说,今天这原创 2022-02-02 18:04:08 · 1924 阅读 · 0 评论 -
Linux应用开发(二十二)——U-Boot的常用命令
文章目录U-Boot的常用命令用法帮助命令help下载命令内存操作命令NOR Flash操作命令NAND Flash操作命令环境变量命令启动命令U-Boot命令使用实例制作内核映象文件烧写内核映象文件uImage烧写yaffs文件系统映象烧写jffs2文件系统映象使用U-Boot来烧写程序总结U-Boot的常用命令用法进入U-Boot控制界面后,可以运行各种命,比如下载文件到内存,擦除,读写Flash,运行内存,NOR Flash,NAND Flash中程序,查看,修改,比较内存中的数据等。使用各种原创 2022-01-30 16:46:39 · 2862 阅读 · 1 评论 -
Linux应用开发(二十)——U-Boot移植(二)
文章目录前言一、支持串口xmodem协议二、支持网卡CS8900总结前言上一篇博客我们进行了U-Boot移植的第一步,使U-Boot同时支持S3C2410和S3C2440两款开发板。根据两款开发板的不同对其SDRAM,系统时钟配置,Makefile等进行了修改。下面我们进行U-Boot移植的第二步和第三步第二步:支持串口xmodem协议第三步:支持网卡芯片CS8900一、支持串口xmodem协议上篇博客中提到,我们设置好U-Boot支持S3C2440和S3C2410后,可以使用loadb,l原创 2022-01-28 21:29:13 · 838 阅读 · 0 评论 -
Linux应用开发(十九)——U-Boot移植(一)
文章目录前言1、同时支持S3C2410和S3C2440新建一个开发板的相应目录和文件2、修改SDRAM的配置3、增加对S3C2440的支持二、使用步骤1.引入库2.读入数据总结前言开发板smdk2410的配置适用于大多数S3C2410开发板,或是只需要极少的修改即可使用。但是目前U-Boot中没有对S3C2440的支持,需要我们自己移植。因为参考书籍是基于S3C2410,S3C2440两款开发板,它们的外接硬件相同。BANK0外接容量为1MB,位宽为8的NOR Flash芯片AM29LV800.原创 2022-01-26 15:55:49 · 1142 阅读 · 1 评论 -
Linux应用开发(十八)——U-Boot的启动过程源码分析
文章目录U-Boot的启动过程源码分析U-Boot第一阶段代码分析U-Boot第二阶段代码分析U-Boot移植同时支持S3C2410和S3C24440支持串口xmodem协议支持网卡芯片CS8900支持NANDFlash支持烧写yaffs文件系统映象修改默认配置参数以便使用U-Boot常用命令U-Boot的常用命令的用法U-Boot命令使用实例使用U-Boot来执行程序U-Boot的启动过程源码分析U-Boot第一阶段代码分析U-Boot第二阶段代码分析U-Boot移植同时支持S3C2410和S原创 2022-01-24 17:11:08 · 1966 阅读 · 4 评论 -
Linux应用开发(十七)——U-Boot的编译、连接过程
文章目录U-Boot的编译U-Boot的连接过程总结U-Boot的编译流程总结U-Boot的编译配置完成后,执行“make all”即可编译,从Makefile中可以了解到U-Boot使用了那些文件、那个文件首先执行、可执行文件占用内存的情况。先确定用到的那些文件,下面所示为Makefile中与ARM相关的部分。include $(OBJTREE)/include/config.mkexport ARCH CPU BOARD VENDOR SOC...ifeq ($(ARCH),arm)C原创 2022-01-23 21:26:41 · 1058 阅读 · 0 评论 -
Linux应用开发(十六)——U-Boot的配置分析(顶层Makefile执行流程分析)
文章目录U-Boot初体验U-Boot的配置过程U-Boot的编译、连接过程总结U-Boot初体验U-Boot的配置过程示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。U-Boot的编译、连接过程总结原创 2022-01-22 14:23:46 · 1031 阅读 · 0 评论 -
Linux应用开发(十五)——U-Boot分析与下载
文章目录U-Boot工程简介U-Boot 特性U-Boot源码结构与官网下载流程总结U-Boot工程简介U-Boot,全称为Univesal Boot Loader,即通用Bootloader,是遵循GPL条款的开放源代码项目。其前身是由德国DENX软件工程中心的Wolfgang Denk基于8xxROM的源码创建的PPCBOOT工程。后来整理代码结构使得非常容易增加其他类型的开发板,其他架构的CPU(原来只支持PowerPC);增加更多的功能,比如启动Linux,下载S-Record格式的文件、通过原创 2022-01-19 22:10:23 · 1160 阅读 · 1 评论 -
Linux应用开发(十四)——Bootloader简介
Bootloader的基本概念和浅析工作原理原创 2022-01-18 22:12:59 · 7399 阅读 · 4 评论 -
Linux应用开发(十三)——ADC和触摸屏接口
文章目录前言一、ADC和触摸屏硬件介绍及使用S3C2410 ADC和触摸屏接口概述ADC和触摸屏接口结构图S3C2410 ADC接口和使用方法触摸屏原理及接口电阻触摸屏原理S3C2410触摸屏接口二、ADC和触摸屏操作实例1.硬件设计程序设计总结前言了解S3C2410ADC和触摸屏的结构了解电阻触摸屏的工作原理和等效电路了解S3C2410触摸屏控制器的多种工作模式掌握S3C2410ADC和触摸屏的编程方法一、ADC和触摸屏硬件介绍及使用S3C2410 ADC和触摸屏接口概述S3C24原创 2022-01-07 15:48:53 · 3108 阅读 · 4 评论 -
Linux应用开发(十二)——LCD控制器
文章目录前言一、LCD和LCD控制器LCD显示器LCD种类LCD的接口对于STNLCD对于TFT LCDS3C2410LCD控制器LCD控制器的特性与结构二、使用步骤1.引入库2.读入数据总结前言了解LCD显示器的接口和及时序掌握S3C2410LCD控制器的使用方法了解帧缓冲区的概念,掌握如何设置帧缓冲区来显示图像一、LCD和LCD控制器LCD显示器LCD种类LCD(Liquied Crystal Display),即液晶显示器,是一种采用了液晶控制透光技术来实现色彩的显示器。它与.原创 2022-01-06 12:07:12 · 2619 阅读 · 0 评论 -
Linux应用开发(十一)——I^2C接口
文章目录前言一、I^2C总线协议及硬件介绍I^2C总线I^2C总线概念I^2C总线的信号类型I^2C总线的数据传输格式S3C2410总线控制器S3C2410总线控制寄存器介绍IICCON寄存器IICSTAT寄存器ICCADD寄存器IICDS寄存器S3C2410 IIC总线操作方法方法一方法二通过中断服务程序来驱动IIC传输IIC寄存器操作流程IIC总线操作实例IIC接口RTC芯片M41t11的操作方法总结前言了解I^2C总线协议掌握S3C2410中I^2C接口的使用方法一、I^2C总线协议.原创 2022-01-04 17:28:09 · 2219 阅读 · 0 评论 -
Linux应用开发(十)——通用异步收发器UART
文章目录前言一、UART原理及UART部件使用方法UART原理说明数据的传输流程S3C2410 UART特性UART的使用1.将所涉及的UART通道管脚设为UART功能2.UBRDIVn寄存器:设置波特率3.ULCONn寄存器:设置传输格式4.UCONn寄存器5.UFCONn寄存器、UFSTATn寄存器6.UMCONn寄存器、UMSTATn寄存器7.UTRSTATn寄存器8.UERSTATn寄存器9.UTXHn寄存器10.URXHn寄存器二、UART操作实例代码思路代码分析UART初始化总结前言了解U原创 2022-01-03 16:51:55 · 1342 阅读 · 1 评论 -
Linux应用开发(九)——系统时钟和定时器
文章目录前言一、时钟体系及各类时钟部件S3C2410时钟体系二、使用步骤1.引入库2.读入数据总结前言了解S3C2410的时钟体系结构掌握通过设置MPLL改变系统时钟的方法掌握在不同的频率下设置存储控制器的方法掌握PWM定时器的用法了解WATCHDOG定时器的用法一、时钟体系及各类时钟部件S3C2410时钟体系S3C2410的时钟控制逻辑既可以外接晶振,然后通过内部电路产生时钟源;也可以直接使用外部提供时钟源,他们二、使用步骤1.引入库代码如下(示例):import nu.原创 2022-01-02 17:14:47 · 839 阅读 · 0 评论 -
Linux应用开发(八)——中断体系结构
文章目录特此声明前言一 中断体系结构ARM体系CPU的7种工作模式ARM体系的CPU工作状态ARM状态下寄存器结构中断控制器中断检测方式中断处理流程中断流程图中断控制寄存器中断控制器操作实例:外部中断按键中断的思路实验代码总结特此声明各位有缘的好朋友们,因为我没有S3C2410这款板子,所以我只是在这里和大家分享我的读书笔记,希望博客中有出现不对的地方,欢迎大家指正!非常感谢前言了解ARM体系CPU的7种工作模式了解S3C2410中断体系结构掌握S3C2410的中断服务程序的编写方式一原创 2021-12-31 17:17:44 · 514 阅读 · 0 评论 -
Linux应用开发(七)——NAND Flash控制器
文章目录前言一、NANDFlash介绍1.1Flash介绍1.2NAND Flash的物理结构1.S3C2410 NAND Flash控制器介绍寄存器介绍二、NAND Flash控制器操作实例:读Flash理解思路总结前言了解NAND Flash芯片的接口掌握通过NAND Flash控制器访问NANDFlash方法一、NANDFlash介绍NAND Flash在嵌入式系统中的地位与PC机上的硬盘类似,具有保存系统运行所必须的操作系统,应用程序,用户数据,运行过程中产生的各类数据。与内存掉电后原创 2021-12-30 16:31:21 · 823 阅读 · 2 评论 -
Linux应用开发(六)——内存管理单元MMU
文章目录前言一、内存管理单元MMU的介绍1.2地址分类详解1.3虚拟地址到物理地址的转化1.4内存访问权限检查1.5TLB的作用1.6cache的作用二、MMU使用实例:地址映射理解思路就行总结前言通过这张的学习:了解虚拟地址和物理地址的关系掌握如何通过设置MMU来控制虚拟地址到物理地址的转化了解TLB,Cache,Write buff的原理,使用时的注意事项一、内存管理单元MMU的介绍内存管理单元简称MMU,它负责虚拟地址到物理地址的内存映射,并提供硬件机制的内存访问权限检查。现代的原创 2021-12-29 17:21:42 · 1077 阅读 · 0 评论 -
Linux应用开发(五)——存储控制器
文章目录前言一、使用存储器控制器访问外设的原理1.1S3C2410的地址空间1.2存储控制器与外设的关系1.3存储控制器的寄存器使用方法二、存储控制器操作实例:使用SDRAM理解思路,有兴趣的同学可以查看书籍总结前言存储控制器:是按照一定的时序规则对存储器的访问进行必要控制的设备,包括地址信号、数据信号以及各种命令信号的控制,使主设备(访问存储器的设备)能够根据自己的要求使用存储器上的存储资源。存储控制器的作用:主要就是进行接口的转换,将主设备发出的读、写等命令转换成存储器能够识别的信号,还要完成主原创 2021-12-28 20:19:42 · 1740 阅读 · 0 评论 -
嵌入式Linux应用开发(四)——GPIO接口
文章目录前言一、GPIO硬件介绍二、通过寄存器操作GPIO引脚1.GPxCON寄存器GPxDAT寄存器GPxUP寄存器2.GPIO操作实例:点亮一个LEDLED原理图使用汇编代码点亮一个LED总结前言本系列博客均是基于韦东山老师的《嵌入式Linux应用开发》书籍,因此对于一些内容有疑问的可以参考书籍也可以评论区讨论。注意:因为原书籍是基于S3C2410芯片进行讲述,所以我们这里主要是理解其原理,对于不同的芯片应根据实际原理图进行改进。提示:以下是本篇文章正文内容,下面案例可供参考一、GPIO硬原创 2021-12-02 16:36:13 · 2302 阅读 · 0 评论 -
嵌入式Linux应用开发(三)——汇编语言
文章目录前言一、ARM架构背景ARM内部寄存器ARM汇编二、汇编指令1.指令的分类立即数的概念如何判断一个数是否是立即数伪指令 LDR 、ADR2.内存访问指令使用到的软件LDR、STR、LDM、STM、LSL实验一代码实验结果实验二代码实验结果分析:数据处理指令实验一实验二实验三实验四实验结果跳转指令实验一实验二实验三总结前言对于做Linux的应用开发,我们依旧需要会使用汇编语言。比如系统启动时的初始化,进出中断时的环境保护、恢复、对性能要求非常苛刻的函数等。都还是需要我们会使用汇编语言。对于汇编原创 2021-12-01 19:18:38 · 2274 阅读 · 1 评论 -
嵌入式Linux应用开发(二)——Makefile引入
文章目录一、Makefile的引入展示编译结果结果分析二、Makefile的使用1.Makefile的规则2.Makefile的语法2.1 通配符 %2.2 假想目标 .PHONY2.3 变量3.Makefile函数3.1 $foreach()函数3.2 $filter()函数3.3 $filter-out()函数3.4 $wildcard()函数3.5 $patsubst()函数总结一、Makefile的引入Makefile的介绍:Makefile是一个编译辅助器,并不是编译器。它只是提供辅助我们原创 2021-11-30 22:46:04 · 1633 阅读 · 0 评论 -
嵌入式Linux应用开发学习(一)—嵌入式编程基本知识
文章目录前言一、交叉编译工具链的配置二、编译器的使用1.gcc编译的过程:2.gcc编译选项总结前言网上对于嵌入式发展的介绍,以及ARM处理器的介绍等都已经有很多了,所以这里也不进行更多的介绍了。同时对于环境的搭建,后期单独发一篇博客进行操作的展示。本文主要是从基础的第一节开始,对交叉编译工具链和gcc的基本概念进行讲解。参考书籍《嵌入式Linux应用开发》韦东山著一、交叉编译工具链的配置因为我们最终是在开发板上运行我们的程序,而我们的PC用的是x86架构(CISC,复杂指令集架构),而我们的原创 2021-11-29 21:39:19 · 2105 阅读 · 0 评论