
嵌入式系统开发与应用
文章平均质量分 73
嵌入式即嵌入式系统,定义是用于控制、监视或者辅助操作机器和设备的装置,是一种专用的计算机系统;国内普遍认同的嵌入式系统定义是以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。
敲代码两年半的练习生
这个作者很懒,什么都没留下…
展开
-
【嵌入式】稳压电源的控制程序
【嵌入式】稳压电源的控制程序1. 题目详情2. 代码详解1. 题目详情编写一个稳压电源的控制程序。以下是稳压电源的示意图。高速AD在电压采集的时候,BUSY引脚为低电平,当模数转换完毕时,BUSY引脚为高电平,要求S5PV210采用查询BUSY引脚的方式里判断其是否转换完毕,然后再读取AD数据。电源驱动和可变负载部分,由于负载上的电压不稳定,所以需要S5PV210输出频率为100KHz的PWM波来稳定输出电压,即根据其占空比稳定负载上的电压值。现要求S5PV210以10us的间隔进行AD的电压采集原创 2021-07-13 08:59:57 · 894 阅读 · 1 评论 -
【嵌入式】串口数据接收程序
【嵌入式】串口数据接收程序1. 题目详情2. 代码详解1. 题目详情编写一个串口数据接收程序。已知S5PV210默认选PCLK为时钟源,且PCLK为66MHz(即此题不需要编写PCLK的初始化程序)。请初始化串口UART0,即让UART0的波特率为115200,正常模式(非红外模式),以中断或轮询模式发生数据,并选择PCLK为串口时钟源,8位数据位,1位停止位,无校验位。然后让UART0串口不断的接收其他设备发送的数据。当接收到的一个字节的数据为0x0f时,引脚GPH0_0为高电平,以让LED0原创 2021-07-13 08:58:03 · 1371 阅读 · 1 评论 -
【嵌入式】流水灯程序
【嵌入式】流水灯程序1. 题目详情2. 代码详解1. 题目详情编写一个流水灯程序。已知,有8个LED灯(LED07)分别连接到S5PV210引脚的GPA0_07。当这些引脚高电平的时候,LED灯亮,反之则灭;两个按键(KEY0,KEY1)分别连接到引脚的GPH0_0, GPH0_1。当按下按键KEY0时,实现LED0->LED1->…->LED7 ->LED0的亮灯循环;当按下按键KEY1时,实现LED0->LED7->…->LED1->LED0的原创 2021-07-13 08:56:18 · 4565 阅读 · 1 评论 -
【嵌入式】A/D编程
【嵌入式】A/D编程1. 触屏模式2. 完整代码3. 普通模式4. 完整代码1. 触屏模式void adc_init(){ TSADCCON0 |= 1 << 17; //选择触摸屏1 //打开A/D转换器预分频器使能 //66MHz / (19 + 1) = 3.3MHz,A/D转换器预分频器数据值为3.3MHz //正常操作模式 TSADCCON1 = 1 << 14 | 19 <&原创 2021-07-13 08:51:41 · 376 阅读 · 1 评论 -
【嵌入式】定时器中断初始化
【嵌入式】定时器中断初始化1. 使能中断2. 初始化中断控制器3. 清除需要处理的中断的中断处理函数的地址4. 读中断状态5. 完整代码1. 使能中断//使能Timer0中断void init_irq(void){ TINT_CSTAT |= 1; //启用定时器0中断}//清除Timer0中断状态位void clear_irq(void){ TINT_CSTAT |= (1 << 5); //清除Timer0中断状态位原创 2021-07-12 11:17:55 · 1667 阅读 · 1 评论 -
【嵌入式】定时器初始化
【嵌入式】定时器初始化完整代码完整代码/*/* * 功能:初始化Timer0 *///#define GPD0CON (*(volatile unsigned int *)0xE02000A0) // PWM输出引脚#define TCFG0 (*(volatile unsigned int *)0xE2500000) #define TCFG1 (*(volatile unsigned int *)0xE2500004) #define TCON原创 2021-07-12 11:10:28 · 1255 阅读 · 1 评论 -
【嵌入式】中断初始化
【嵌入式】中断初始化1. 配置中断引脚2. 清中断挂起寄存器3. 初始化中断控制器4. 读中断状态5. 完整代码1. 配置中断引脚//配置中断引脚void init_key(void){ GPH0CON &= ~(0xFF << 0); //低八位0000 0000 GPH0CON |= (0xFF << 0); //低八位1111 1111 EXT_INT[0] EXT_INT[1]为中断功能 EXT_INT_0_CON原创 2021-07-12 11:07:12 · 802 阅读 · 1 评论 -
【嵌入式】串口初始化
【嵌入式】串口初始化1. 将UART通道的引脚配置为UART功能,接收RXD,发送TXD2. 时钟源选择及工作模式设置UCON03. 设置波特率4. 设置数据传输格式ULCON05. 启用或禁止FIFO6. 发送数据UTXH0寄存器和接收数据URXH0寄存器7. 发收数据状态的控制UTRSTAT0寄存器8. 完整代码1. 将UART通道的引脚配置为UART功能,接收RXD,发送TXD //配置GPA0CON[0]为UART_0_RXD,GPA0CON[1]1为UART_0_TXD GPA0CON &原创 2021-07-12 10:56:11 · 1127 阅读 · 1 评论 -
【嵌入式】GPIO初始化
【嵌入式】GPIO初始化1. LED灯闪烁2. 按键控制LED灯闪烁1. LED灯闪烁//LED灯闪烁//GPxnCON:引脚功能,GPxnDAT:输出、输入的数据存储器#define GPJ2CON (*(volatile unsigned long *)0xE0200280)#define GPJ2DAT (*(volatile unsigned long *)0xE0200284)void delay(int t){ int count = t; while (co原创 2021-07-12 10:46:27 · 924 阅读 · 1 评论 -
【嵌入式】DNW下载的软硬件流程
【嵌入式】DNW下载的软硬件流程将实验箱中的拨码开关2拨到on,长按电源键直至电脑提示安装驱动打开计算机设备管理器,右键选择更新驱动程序,手动添加驱动程序将拨码开关2重新置为OFF状态,然后关闭电源等待驱动安装完毕打开DNW软件,设置波特率:115200,地址:0xd0020010打开DNW串口连接,迅速敲击空格键,输入dnw 0xd0020010点击传输,选择编译好的文件传输至开发板输入go 0xd0020010,即可运行文件...原创 2021-07-12 10:40:05 · 606 阅读 · 1 评论 -
【嵌入式】S5PV210的启动流程
S5PV210的启动流程S5PV210上电后执行iROM中的固化代码,即BL0(Bootloader0)。这个代码是厂家出厂前烧写好的,不提供源代码,但提供相应的功能说明,比如进行一些时钟初始化、设备控制器初始化和启动相关的初始化等。iROM继续执行加载Bootloader到片内SRAM(总大小96KB)中,即BL1(最大不超过16KB),并跳到BL1中执行。执行BL1加载Bootloader剩余部分到SRAM中,即BL2(最大不超过80KB),并跳到BL2中执行。执行BL2初始化DRAM控制原创 2021-07-12 10:38:55 · 477 阅读 · 1 评论 -
【嵌入式】Makefile释义
【嵌入式】Makefile释义uart.bin: start.o clock.o uart.o main.o//目标:依赖//下面是命令,必须使用Tab开头,命令就是输入make指令后需要执行的命令arm-linux-gcc -c -o led.o led.S//将led.S文件编译成led.o文件arm-linux-ld -Ttext 0xD0020010 -o uart.elf $^//arm-linux-ld:链接工具,将多个目标文件链接成一个文件//-Ttext ADDRESS:指明原创 2021-07-12 10:36:01 · 230 阅读 · 1 评论 -
【嵌入式】PWM定时器
【嵌入式】PWM定时器1. 操作内容2. 原理解释3. 操作步骤3.1 编写键控制代码,将代码编译为二进制文件3.2 安装 USB 驱动3.3 使用 DNW 软件下载裸机程序 pwm.bin至 SRAM 中运行4. 操作结果附件一:start.S 文件附件二:pwm.c文件附件三:Makefile 文件附件四:clock.c 文件1. 操作内容掌握定时器编程步骤掌握定时器相应寄存器的使用掌握定时器制程序的编写、编译、运行利用PWM定时器控制蜂鸣器周期性间断鸣响,周期为10s,鸣响5秒,静默5秒原创 2021-06-17 23:48:58 · 965 阅读 · 3 评论 -
【嵌入式】串口按键
【嵌入式】串口按键1. 操作内容2. 原理解释3. 操作步骤3.1 编写键控制代码,将代码编译为二进制文件3.2 安装 USB 驱动3.3 使用 DNW 软件下载裸机程序 uart.bin至 SRAM 中运行4. 操作结果附件一:start.S 文件附件二:uart.c文件附件三:Makefile 文件附件四:main.c 文件附件五:clock.c 文件1. 操作内容掌握中断服务程序及串口通信程序的编写步骤掌握串口通信程序的编写、编译、运行熟悉嵌入式系统启动代码、头文件、Makefile文件的原创 2021-06-09 20:56:58 · 788 阅读 · 1 评论 -
【嵌入式】串口控制
【嵌入式】串口控制1. 操作内容2. 原理解释3. 操作步骤3.1 实验箱按键电路4. 操作结果附件一:start.S 文件附件二:uart.c文件附件三:Makefile 文件附件四:main.c 文件附件五:clock.c 文件附件六:LED+buzzer main.c文件1. 操作内容掌握串口通信编程步骤掌握串口通信程序的编写、编译、运行熟悉嵌入式系统启动代码、头文件、Makefile文件的编写在PC端,由数字键盘输入数字1,利用串口控制LED灯从左往右跑马灯闪烁10次;输入时LED灯从原创 2021-06-09 20:51:40 · 769 阅读 · 4 评论 -
【嵌入式】按键中断控制 LED 及蜂鸣器实验
【嵌入式】按键中断控制 LED 及蜂鸣器实验 1. 操作内容2. 原理解释2.1 实验箱按键电路2.2 实验箱LED电路2.3 实验箱蜂鸣器电路2.3 寄存器说明3. 操作步骤3.1 编写键控制 LED 代码,将代码编译为二进制文3.2 安装 USB 驱动3.2 使用 DNW 软件下载裸机程序至 SRAM 中运行4. 操作结果附件一:start.S 文件附件二:addheader.c 文件附件三:Makefile 文件附件四:key.c 文件1. 操作内容掌握中断编程步骤掌握中断系统相应寄存器的使原创 2021-06-06 12:09:50 · 3927 阅读 · 1 评论 -
【嵌入式】按键中断控制 LED 跑马灯实验
【嵌入式】按键中断控制 LED 跑马灯实验 1. 操作内容2. 原理解释2.1 实验箱按键电路2.2 实验箱LED电路2.3 寄存器说明3. 操作步骤3.1 编写键控制 LED 代码,将代码编译为二进制文3.2 安装 USB 驱动3.2 使用 DNW 软件下载裸机程序至 SRAM 中运行4. 操作结果附件一:start.S 文件附件二:addheader.c 文件附件三:Makefile 文件附件四:key.c 文件1. 操作内容熟悉中断控制主程序需要进行的步骤熟悉中断服务程序需要进行的步骤利用原创 2021-05-26 18:31:58 · 3971 阅读 · 1 评论 -
【嵌入式】按键中断控制 LED
【嵌入式】按键中断控制 LED 1. 操作内容2. 原理解释2.1 实验箱按键电路2.2 实验箱LED电路2.3 寄存器说明3. 操作步骤3.1 编写键控制 LED 代码,将代码编译为二进制文3.2 安装 USB 驱动3.2 使用 DNW 软件下载裸机程序至 SRAM 中运行4. 操作结果附件一:start.S 文件附件二:addheader.c 文件7. 附件三:Makefile 文件1. 操作内容熟悉中断控制主程序需要进行的步骤熟悉中断服务程序需要进行的步骤利用按键SW5实现按键中断控制LE原创 2021-05-19 20:40:17 · 2392 阅读 · 6 评论 -
【嵌入式】按键控制 LED
【嵌入式】按键控制 LED 实验1. 操作内容2. 原理解释2.1 实验箱按键电路2.2 实验箱LED电路2.3 寄存器说明3. 操作步骤3.1 编写键控制3.2 安装 USB 驱动3.2 使用 DNW 软件下载裸机程序至 SRAM 中运行4. 操作结果附件一:start.S 文件附件二:addheader.c 文件7. 附件三:Makefile 文件1. 操作内容熟悉嵌入式系统裸机程序开发。掌握GPIO的输入、输出控制。掌握GPIO控制程序的编写、编译、运行。利用按键SW5和SW6控制LED原创 2021-05-13 09:04:05 · 4054 阅读 · 12 评论 -
【嵌入式】裸机烧写LED
【嵌入式】裸机烧写LED1. 操作内容2. 原理解释2.1 电路图及寄存器功能简表2.2 GPIO工作原理2.3 启动代码2.4 头文件2.5 Makefile文件3. 操作步骤3.1 编译文件3.2 安装USB驱动3.3 下载文件、启动系统4. 操作结果1. 操作内容熟悉嵌入式系统启动代码、头文件、Makefile文件的编写。掌握GPIO控制程序的编写、编译、运行。编写系统的启动代码、GPIO控制程序、头文件以及Makefile文件,编译得到可执行文件,下载至开发板,实现在开发板上启动系统。原创 2021-05-09 16:21:00 · 1211 阅读 · 8 评论 -
【嵌入式】GPIO驱动LED设计
【嵌入式】GPIO驱动LED设计1. 操作内容2. 操作步骤2.1 编译Linux内核2.2 编译LED驱动2.3 运行文件3. 操作结果1. 操作内容掌握嵌入式 GPIO 驱动程序的编写,工作原理。熟悉 Linux 环境下 LED 驱动程序的编写,运行。2. 操作步骤2.1 编译Linux内核将android-2.3.tar.gz和arm-2009q3.tar.bz2文件复制到Windows和Linux共享文件夹。新建文件夹s210x并修改权限,在其中部署android-2.3.原创 2021-05-06 09:01:01 · 1239 阅读 · 9 评论 -
【嵌入式】UDP
【嵌入式】UDP1. 操作内容2. 操作步骤3. 操作结果1. 操作内容掌握Linux下UDP的通信原理与实现。熟悉Linux下的socket函数编程方法。交叉编译UDP协议文件,将编译后的文件通过NFS服务器下载至开发板运行。2. 操作步骤交叉编译UDP文件。设置NFS服务1) 建立一个NFS服务的专有文件夹nfs。$ sudo mkdir /opt/nfs2)编辑exports文件。$ gedit /etc/exports在文件的最后一行添加:/原创 2021-04-21 15:05:21 · 568 阅读 · 1 评论 -
【嵌入式】Web
【嵌入式】Web1. 操作内容2. 操作步骤1. 操作内容理解Linux中TCP的通信过程以及实现方法。掌握Linux下socket()函数在TCP通信中的使用。在Linux系统中设置NFS服务,在开发板上挂载Web服务器,由Linux系统中的浏览器访问开发板Web服务器实现网页浏览。2. 操作步骤1.交叉编译Webserver1)切换到root用户后设置工作环境。设置NFS服务1)建立一个NFS服务的专有文件夹nfs。$ sudo mkdir /opt/nfs原创 2021-04-14 17:55:42 · 274 阅读 · 2 评论 -
【嵌入式】Madplay
【嵌入式】开发板与TFTP服务1. 操作内容2. 操作步骤1. 操作内容通过实验了解一般应用程序的移植方法。通过实验掌握在Linux播放MP3的方法。Madplay作为一款流行的嵌入式播放器能够很好的兼容当前的各种嵌入式设备,具有良好的可移植性,实现了在嵌入式上的音频播放。2. 操作步骤编译1)切换到root用户后设置工作环境。$ su# PATH=/usr/local/arm/4.4.1/bin:$PATH # mkdir -p /usr/local/src/s210x原创 2021-04-08 09:31:58 · 483 阅读 · 3 评论 -
【嵌入式】开发板与TFTP服务
【嵌入式】开发板与TFTP服务1. 操作内容2. 操作步骤3. 注意事项1. 操作内容熟悉Linux系统中TFTP服务设置;熟悉Linux系统中计时器编程方法;熟悉Linux系统中常用时间函数编程方法。在Linux系统中设置TFTP服务,通过TFTP服务将计时器函数下载至开发板并运行2. 操作步骤1.配置网络输入以下命令修改sources.list文件权限,删除/etc/apt中sources.list中的所有内容,并更换为国内的源镜像(163源、阿里源等),完成编辑原创 2021-03-31 17:59:09 · 423 阅读 · 5 评论 -
【嵌入式】NFS服务器挂载开发板
【嵌入式】NFS服务器挂载开发板1. 操作内容2. 操作步骤3. 操作结果1. 操作内容熟悉Linux系统中设置NFS服务器。熟悉NFS服务器挂载嵌入式系统开发板。在Linux系统中设置NFS服务器,通过串口通信将开发板挂载到NFS服务器。2. 操作步骤1.在Linux系统中由以下命令建立一个NFS专用文件夹。$ mkdir /opt/nfs若需要Linux管理员权限,可改为输入命令“sudo mkdir /opt/nfs”,密码为123456。2.在Linux系统中修改e原创 2021-03-25 13:28:00 · 358 阅读 · 2 评论 -
【嵌入式】文件操作
【嵌入式】串口间的通信1. 操作内容2. 操作步骤3. 操作结果1. 操作内容通过编写文件读写及上锁的程序,熟悉Linux中文件I/O相关的应用开发;掌握fopen()、fread()、fwrite()、fcntl()等函数的使用;熟悉嵌入式系统挂载U盘通信。利用文件操作函数实现对文件的操作,通过交叉编译生产可执行文件,由嵌入式系统控制U盘通信运行编译后的文件,借助输出文件中的内容分析文件操作过程。2. 操作步骤打开12.2-file文件夹中的file.c文件,修改fwrite函数原创 2021-03-25 09:39:02 · 731 阅读 · 2 评论 -
【嵌入式】串口间的通信
【嵌入式】串口间的通信1. 操作内容2. 操作步骤3. 操作结果4. 串口通信5. 操作步骤6. 具体操作7. 具体结果1. 操作内容利用串口通信,将编译后的Helloworld程序传输至嵌入式系统运行,通过程序中的printf函数显示helloworld打印信息。2. 操作步骤开启VM Ware虚拟机进入Ubuntu12.0系统,依次输入以下命令交叉编译共享文件夹中的helloworld.c文件: $ cd /mnt/hgfs/forlinux/12.1-helloworld原创 2021-03-14 20:43:56 · 954 阅读 · 10 评论