摘要: 硬件 一、配置CubeMax工程 二、配置系统时钟 因为LAN8720使用的是外部25MHz的晶振,所以不需要单片机输出时钟 三、配置ETH和LWIP参数 四、更改代码 LAN8720A在初始化的时候需要复位,因此在ethernetif.c的 static void low_level_init(s 阅读全文
posted @ 2018-11-11 16:58 常瑟 阅读(27799) 评论(1) 推荐(4) 编辑
摘要: STM32F103ZET6、STM32F429IGT6、STM32F767IGT6,串口不定长接收测试程序 阅读全文
posted @ 2018-06-26 00:06 常瑟 阅读(1638) 评论(2) 推荐(2) 编辑
摘要: 1.列表 列表是FreeRTOSde中的一个数据结构,概念上和链表雷士,列表被用来跟踪FreeRTOS中的任务,与列表相关的全放在list.c和list.h中,在list.h中定义了一个结构体如下: typedef struct xLIST { listFIRST_LIST_INTEGRITY_CH 阅读全文
posted @ 2018-04-02 01:16 常瑟 阅读(2803) 评论(1) 推荐(0) 编辑
摘要: 1.任务相关的API函数 函数存在于task.c中,主要的函数有: xTaskCreate():使用动态的方法创建一个任务; xTaskCreatStatic():使用静态的方法创建一个任务(用的非常少); xTaskCreateRestricted():创建一个使用MPU进行限制的任务; vTas 阅读全文
posted @ 2018-04-01 18:04 常瑟 阅读(3672) 评论(0) 推荐(3) 编辑
摘要: 1.FreeRTOS目录结构 FreeRTOS FreeRTOS简略目录如下: ├─FreeRTOS │ ├─Demo // 各种开发工具的完整Demo,开发者可以方便的以此搭建出自己的项目,甚至直接使用 │ │ ├─Common // 所有例程都可以使用的演示例程文件 │ │ └─其他 // 对应 阅读全文
posted @ 2018-03-31 22:21 常瑟 阅读(6087) 评论(0) 推荐(0) 编辑
摘要: 1.根文件系统概述 为什么需要根文件系统 init进程的应用程序在根文件系统上 根文件系统提供了根目录 ‘ / ’ 内核启动后的应用层配置(etc目录)在根文件系统上。几乎可以认为:发行版=内核+rootfs shell命令程序在根文件系统上。譬如ls、cd等命令 总结:一套linux体系,只有内核 阅读全文
posted @ 2018-03-21 01:27 常瑟 阅读(960) 评论(0) 推荐(0) 编辑
摘要: 1.类型增强 检查更加严格 比如,把一个 const 类型的指针赋给非 const 类型的指针。c 语言中可以通的过,但是在 c++中则编不过去 const int a = 100; int b = a; const int *pa = &a; int *pb = pa; 增加bool类型 c语言中 阅读全文
posted @ 2018-03-20 16:53 常瑟 阅读(1004) 评论(0) 推荐(0) 编辑
摘要: 1.内核移植初体验 三星官方移植版内核获取 从网盘下载源码包。 这个文件最初是来自于三星的SMDKV210开发板附带的光盘资料 构建移植环境 将kernel包放到Ubuntu中,使用“tar zxvf android_kernel_2.6.35_smdkv210.tar.bz2”进行解压,然后“ma 阅读全文
posted @ 2018-03-20 00:31 常瑟 阅读(1427) 评论(0) 推荐(0) 编辑
摘要: 1.内核分析准备 删除无用文件 官方版本的kernel中是支持各种硬件架构、各种开发板的,因此有很多文件夹和文件和我们无关,在建立SI工程前应该删掉这些家伙。 我们现在分析的是开发板厂商九鼎科技移植好的针对X210开发板的kernel,因此其中一些无用文件已经被删掉了。 建立SI工程并解析 建立方法 阅读全文
posted @ 2018-03-11 01:48 常瑟 阅读(2017) 评论(0) 推荐(0) 编辑
摘要: 1.linux内核源码目录结构1 源码从哪里来 之前讲过,我们使用2.6.35.7版本的内核。这个版本的内核有三种:第一种是kernel.org上的官方版本,第二种是三星移植过的,第三种是九鼎X210的移植版本。我们讲课时使用第三种内核来讲解,后面的移植实验使用第二种内核来移植。 源码在开发板光盘中 阅读全文
posted @ 2018-03-10 22:12 常瑟 阅读(1174) 评论(0) 推荐(0) 编辑