自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (9)
  • 收藏
  • 关注

原创 Linux-4.9.2内核在mini2440上的移植(前言)

基于mini2440开发板的linux内核移植,网上的教程多是基于linux-2.6.32.2版本,教程内容相对完整,入门者跟着教程操作基本可以成功,满足实践需求。也有少部分linux-3.x版本内核移植教程,但是内容细节不丰富。现在最新的linux内核版本已经升级到4.13(截止于2017.9.25),最新版本的内核加入了一些新的特性与功能,并修改了一些bug,所以尝试使用新内核是一种需求,不应该

2017-09-28 17:22:59 2963

原创 基于ENC28J60+uIP1.0+STM32的UDP Server实现,服务器主动发送数据的实现,几个关键的问题可算整明白了!

ENC28J60,是一款SPI接口的以太网PHY+MAC芯片,实现以太网物理层和MAC层硬件通信。uIP是一个TCP/IP软件协议栈,实现TCP、UDP、ARP、ICMP等网络协议。STM32F103RCT6通过SPI接口与ENC28J60通讯,并移植uIP协议,实现一个小型的UDP服务器。

2023-09-20 23:26:51 1522 4

原创 STM32F407使用Helix库软解MP3并通过DAC输出,最精简的STM32+SD卡实现MP3播放器

原理:STM32从SD读取MP3文件原始数据,发送给Helix库解码,Helix解码后输出PCM数据流,将此数据进一步处理转换后,按照左右声道分别存入DAC输出1和2缓存,通过定时器以MP3文件的采样率的频率提供DAC触发节拍,通过DMA取缓存中高12位数据给DAC,在DAC1和2引脚产生音频波形,通过电容耦合到耳机的左右声道上。记录了音频采样的数据,双通道、16bit的PCM数据格式是以0轴为中心,范围为-32768~32767的数值,每个数据占用2字节,左声道和右声道交替存储,如图。

2023-08-15 23:07:51 6238 10

原创 Linux-4.9.2内核在mini2440上的移植(二)——Ubuntu编译环境搭建(下)

上篇文章介绍安装虚拟机服务器,并启用了ssh。本篇目的:在ubuntu服务器配置arm-linux-交叉编译环境,tftp服务器。2.1安装arm-linux-编译器编译器在ubuntu环境下可以使用apt命令自动安装,也可以下载独立的安装包手动安装,这两种安装方式都可以实现内核编译,不同版本的arm-linux-gcc可以在系统中共存。本文会介绍这两种安装方法。任一种编译器都能

2020-05-12 15:25:52 2448 2

原创 STM32L4新版HAL库SDIO(DMA)、FatFs使用教程(四)

添加FreeRtos支持。FreeRtos中使用FATFS是强制要求使用DMA模式的SDIO驱动。步骤如下:1、打开工程配置文件,添加FreeRtos支持2、配置参数发现configuration选项卡SDMMC1报错,信息如下,意思是中断优先级问题。打开NVIC配置界面,修改中断优先级,注意,DMA优先级要比SD中断优先级低。打开FREERTOS选项,如图所示...

2018-10-29 22:07:21 4477 4

原创 STM32L4新版HAL库SDIO(DMA)、FatFs使用教程(三)

使用FatFs文件系统添加FatFs文件系统,使用DMA读写方式驱动。1、打开配置文件,在FatFs勾选SD Card2、在configuration选项卡中打开“FATFS”选项,按下图配置,以支持中文和长目录。生成代码并打开工程。 打开菜单栏project -> settings,如图红框部分,调大堆栈,heap = 0x400, Stack = 0x100...

2018-10-29 22:04:05 8602 28

原创 STM32L4新版HAL库SDIO(DMA)、FatFs使用教程(二)

使用DMA控制SDIO上一节已经成功使用普通SDIO模式驱动起SD卡了,但是使用FreeRtos时,CubeMX会强制要求使用DMA模式。下面介绍以DMA模式驱动SDIO的方法。1、首先,打开CubeMX配置好的文件STM32L476RGT6_SDIO.ioc。2、到configuration选项卡中,打开SDMMC1,再到DMA Settings选项卡,这里我们添加DMA通道。这里...

2018-10-29 21:57:44 9383 7

原创 STM32L4新版HAL库SDIO(DMA)、FatFs使用教程(一)

普通方式控制SD1、打开STM32CubeMX新建工程,选择芯片。2、配置基本外设:(1)配置SYS,打开调试口。我用Jlink-OB,就选SYS下面的Debug选项中的Trace Asynchronous Sw选项,根据实际自行选择。这一步很重要,如果忘记配置,再刷程序就很麻烦了。将Timebase Source选为TIM6,这一步尽量做,避免以后使用FreeRtos时发生冲突。...

2018-10-29 21:44:07 9580 10

原创 STM32L4新版HAL库SDIO(DMA)、FatFs使用教程(前言)

前言:ST的CubeMX库确实强大,但是同时也挖了不少的坑。使用HAL库SDIO驱动TF卡,按照旧版本的套路开发就不行。如何区分新版和旧版呢?一般来说,基本上HAL固件包发布日期在2017年6月之后的HAL固件对SDIO驱动进行了更新。打开“stm32l4xx_hal_sd.c”文件(其他系列就打开类似文件,例如F4系列就是“stm32f4xx_hal_sd.c”),搜索“HAL_SD_C...

2018-10-29 21:36:11 4989 3

原创 Linux-4.9.2内核在mini2440上的移植(十五)——总结

到此,未完成的驱动包括:15.1、UDA1341音频驱动(未解决)原因:linux-4.x版本的音频驱动采用了ALSA全新的结构,按照linux-2.6内核的音频驱动移植方法移植,一定会失败的。在linux2.x与linux4.x版本之间的linux3.x部分版本,可以使用ASOC的音频驱动模式,具体测试过的版本是linux-3.6.6,可以直接参考该版本内的arch/arm/mach-s

2017-10-05 14:32:09 1150 1

原创 Linux-4.9.2内核在mini2440上的移植(十四)——蜂鸣器驱动移植

本篇目的:移植蜂鸣器驱动,并测试。本篇参考:http://singleboy.blog.163.com/blog/static/54900194201152921847149/14.1 蜂鸣器驱动源码添加(1)添加源码drivers/misc/mini2440_pwm.croot@ubuntu:~/linux-4.9.2# vim drivers/misc/mini2440_pwm

2017-10-05 12:24:10 680

原创 Linux-4.9.2内核在mini2440上的移植(十三)——按键驱动移植

本篇目的:移植按键驱动,并测试。本篇参考:http://singleboy.blog.163.com/blog/static/54900194201152824449789/12.1 按键驱动源码添加(1)添加驱动源码drivers/misc/mini2440_buttons.croot@ubuntu:~/linux-4.9.2# vim drivers/misc/mini2440

2017-10-04 23:07:53 505

原创 Linux-4.9.2内核在mini2440上的移植(十二)——LED驱动移植

本篇目的:移植LED驱动,并测试。本篇参考:http://singleboy.blog.163.com/blog/static/54900194201152811472442/12.1 LED源码添加(1)添加源码drivers/misc/mini2440_leds.croot@ubuntu:~/linux-4.9.2# vim drivers/misc/mini2440_leds

2017-10-04 22:47:54 635

原创 Linux-4.9.2内核在mini2440上的移植(十一)——触摸屏驱动移植

本篇目的:移植触摸屏驱动,并测试。本篇参考:http://singleboy.blog.163.com/blog/static/54900194201152310140885/11.1 触摸屏源码添加(1)进入到驱动目录root@ubuntu:~/linux-4.9.2#cd drivers/input/touchscreen/ (2)备份原来的驱动程序root@ubu

2017-10-02 16:26:36 1426

原创 Linux-4.9.2内核在mini2440上的移植(十)——ADC驱动移植

本篇目的:移植ADC驱动,并测试。本篇参考:http://singleboy.blog.163.com/blog/static/54900194201152284152419/ 说明:1、本文源码参考链接的源码修改,在linux-4.9.2下移植驱动请务必使用本源码2、源码为了方便粘贴,部分注释已经去掉,需要注释请查看参考网址10.1 添加ADC驱动源码文件

2017-10-01 18:15:56 909

原创 Linux-4.9.2内核在mini2440上的移植(九)——LCD驱动移植

本篇目的:添加背光驱动,添加LCD驱动。本篇参考:背光添加:http://singleboy.blog.163.com/blog/static/54900194201152183748863/LCD驱动:http://singleboy.blog.163.com/blog/static/54900194201152113914540/9.1 背光驱动添加LCD的背光控制引脚是G

2017-09-30 13:39:24 1863

原创 Linux-4.9.2内核在mini2440上的移植(八)——RTC驱动移植

本篇目标:移植RTC驱动,使时钟正常运行。8.1 添加RTC支持上篇说到,RTC的驱动有问题,这个问题在启动日志中的体现是hctosys: unable to open rtc device (rtc0),可见RTC驱动没有加载上。我们先将RTC驱动添加到mach-mini2440.c文件中。root@ubuntu:~/linux-4.9.2#vim arch/arm/mach-s

2017-09-28 22:07:13 1308

原创 Linux-4.9.2内核在mini2440上的移植(七)——NFS文件系统挂载

本篇目标:在ubuntu主机上搭建一个NFS服务器,并将友善提供的rootfs源码进行NFS挂载测试,验证yaffs文件系统以及DM9000的驱动是否正常运行。NFS服务器搭建参考:http://www.linuxidc.com/Linux/2017-02/141150.htmhttp://www.linuxidc.com/Linux/2016-04/129848.htm 7.

2017-09-28 22:01:52 2296

原创 Linux-4.9.2内核在mini2440上的移植(六)——修改MD9000驱动

本篇目标:修改DM9000驱动,使内核支持网络。6.1 移植DM9000 网卡驱动(1)在linux-4.9.2文件夹,输入root@ubuntu:~/linux-4.9.2#vim arch/arm/mach-s3c24xx/mach-mini2440.c定位到53行,添加#include#include  (2)填充该平台设备的资源设置定位到206行附近,如

2017-09-28 21:56:47 877

原创 Linux-4.9.2内核在mini2440上的移植(五)——添加yaffs文件系统

本篇目标:为内核添加yaffs文件系统支持。5.1.安装GIT工具root@ubuntu:~/linux-4.9.2# apt-get install git 5.2获取yaffs2 源代码(1)切换到根目录root@ubuntu:~/linux-4.9.2# cd /root (2)git源码root@ubuntu:~# git clonegit://www.

2017-09-28 21:51:05 1419

原创 Linux-4.9.2内核在mini2440上的移植(四)——修改Nand Flash分区表

本篇目标:在linux-4.9.2的源码中,配置nand flash的分区表。4.1 修改mach-mini2440.c切换回之前的putty窗口,用vim打开mach-mini2440.c文件,在第148行之后添加如下代码:(红色部分)        .lpcsel         = ((0xCE6) & ~7) | 1}; /* NAND parititon from

2017-09-28 21:45:26 2840 1

原创 Linux-4.9.2内核在mini2440上的移植(三)——编译环境测试

本篇目标:获取linux-4.9.2源码,在服务器上编译,并通过tftp在开发板中试运行。3.1 linux-4.9.2源码获取为什么选择4.9.2移植呢?因为太新的linux源码yaffs文件系统跟不上,编译过程会导致大量错误无法使用,所以选择比较新的源码就可以了。具体的说明到移植yaffs文件系统时再说。 我们的工作目录定在/root下面,进入到目录root@ubunt

2017-09-28 18:23:02 8596 4

原创 Linux-4.9.2内核在mini2440上的移植(一)——Ubuntu编译环境搭建(上)

1.1 编译调试环境介绍Linux内核编译是一个CPU等硬件资源占用非常多的过程,所以内核编译尽量使用一台性能较强的linux服务器作为编译主机,开发者使用ssh工具登录到远程主机进行相关操作。但是多数情况下,我们只有一台电脑,所以需要虚拟机软件,在虚拟机中运行linux,假装存在一台这样的服务器,这台服务器是使用自己电脑的硬件资源。编译环境拓扑图如图所示在上图中,服务器可以虚

2017-09-28 17:39:29 1725

原创 友善之臂MINI2440移植Linux内核“Kernel panic”的解决方法

Failed to execute /linuxrc. Attempting defaults...Kernel panic - not syncing: No init found. Try passing init= option to kernel.

2016-03-23 14:05:29 1520

STM32F407VG USB_CDC虚拟串口

使用USB虚拟串口与PC通讯的DEMO(USB——CDC/VCP)工程模板 开发平台:keil5 硬件要求:STM32F407VG 具有usart1,以及使用PA11和PA12的USB接口,外部晶振8M 本人硬件调试通过,使用方法见文档 注意:本DEMO usb串口不是使用回显的方法,无论你发什么到usb串口,他都会回你helloworld,另一个硬件的usart1串口可以看到你在usb串口上发送的字符

2016-06-13

图书馆书库借阅管理系统设计

一、 设计目的 根据所学的数据库原理与程序设计的知识,能够针对一个小型的数据库管理系统,进行系统的需求分析,系统设计,数据库设计,编码,测试等,完成题目要求的功能,从而达到掌握开发一个小型数据库的目的。 二、 设计内容 1. 要的数据表 图书基本信息表,借书卡信息表,借阅信息表,图书分类信息表,代码表等。 2. 功能模块 1) 图书基本情况的录入、修改、删除等基本操作。 2) 办理借书卡模块。 3) 实现借书功能。 4) 实现还书功能。 5) 能方便的对图书进行查询。 6) 对超期的情况能自动给出提示信息。 7) 具有数据备份和数据恢复功能。

2013-07-14

计算机网络ARQ协议模拟程序

计算机网络ARQ协议模拟程序,采用c++实现模拟ARQ发送接收数据,出错重传机制

2013-07-14

计算机图形学实验,消隐 分割 vc6.0

计算机图形学实验代码,c++编写,消隐 分割 vc6.0

2013-07-14

数值分析经典算法,拉格朗日,牛顿...

数值分析经典算法,拉格朗日插值,牛顿插值,迭代...

2013-07-14

用DS1302与LCD12864设计的可调电子钟及仿真

用DS1302与LCD12864设计的可调电子钟及仿真,有代码,有仿真图,可用,单片机课程设计

2013-07-14

用单片机和LCD12864设计的万年历

程序模块化设计,各部分代码请查看头文件(***.h)内容。 按键s1选模式,按键s2加,按键s3减,s4不用,调整顺序:秒,时,分,日,月,年,星期。 按s1一次,秒时间停住不动,此时按s2或s3调整秒, 再按s1,按s2或s3调整分。。。。。以此类推 对显示内容不满意请到头文件key.h中自行修改

2013-07-14

表达式求值的设计与实现(c++)

表达式求值是程序设计语言编译中的一个最基本问题,要求进行类的设计与实现,采用算符优先法实现表达式求值。具体要求如下: (1) 用顺序栈作为表达式求值过程中运算符栈和操作数栈的实现; (2) 用二维数组存储算符间的优先关系; (3) 采用算符优先法实现表达式求值; (4) 将上述功能作为类的成员函数实现,编写主函数测试上述功能。 c++代码实现

2012-01-07

mfc小型指针+数字时钟(c++ mfc课设)

mfc小型指针+数字时钟(c++ mfc课设)

2012-01-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除