- 博客(22)
- 收藏
- 关注
原创 使用CCS移植FreeRTOS至TM4C123系列
使用新建好的工程,见上一篇博文:使用CCS给TM4C123系列MCU新建工程第一步:在自己的工程下新建一个FreeRTOS文件夹,在这个文件夹下新建两个文件夹:src和port第二步:将include文件复制到工程文件夹中第三步:将以下的文件复制到工程的src文件夹中第四步:复制C:\ti\TivaWare_C_Series-2.1.4.178\third_party\...
2020-02-19 19:04:08 2206 3
原创 使用CCS给TM4C123系列新建工程
准备工作:下载CCS开发环境,这种用的版本是:Code Composer StudioVersion: 8.3.0.00009 下载TivaWare工具包:TivaWare第一步:新建一个CCS Project第二步:选择芯片,工程路径,点完成第三步:打开安装好的TivaWare,复制需要的文件路径:C:\ti\TivaWare_C_Series-2.1.4.178...
2020-02-18 15:22:42 2329 4
原创 STM8S之TIM2_CH1输出不了PWM波解决办法
最近由于项目需要,用到STM8S103F3P6,开发方式采用库函数方式开发,编译环境为ST Visual Develop+Cosmic CxSTM8 32K 4.3.4。初始化PWM的程序如下:void TIM2_Init(void){ TIM2_TimeBaseInit(TIM2_PRESCALER_1, 999);/*1分频 ,计数值8000,频率=16M/8000=2kHZ*...
2019-07-20 22:37:47 2933
原创 手写RTOS-使用PendSV进行压栈与出栈操作
学会使用PendSV中断进行压栈和出栈操作,是实现任务调度的关键。今天我们就来学习一下如何使用不超过20行的汇编实现压栈和出栈操作。我们现在来实现这么一个例子:先把R4-R11通用寄存器的值保存到一个缓冲区里面,然后再把缓冲区里面的值恢复到R4-R11。实现这个功能的意义在于,在切换一下个任务之前,要先把当前任务的状态先保存起来,然后把要下面要执行的任务状态从缓冲区里面恢复出来。下面我...
2019-02-02 01:24:36 1407 1
原创 手写RTOS-PendSV中断
今天这一篇,我们说一下操作系统都要用到的PendSV中断,整个操作系统中,要自己写的的汇编代码不超过20行,全部都在PendSV中断里。以下是《Cotex-M3权威指南》里对PendSV的描述:它是可以像普通的中断一样被悬起的。 OS 可以利用它“缓期执行” 一个异常——直到其它重要的任务完成后才执行动作。 悬起 PendSV 的方法是: 手工往 NVIC 的 PendSV 悬起寄存器中...
2019-02-01 10:16:25 2179 1
原创 手写RTOS-创建工程
今天开始我手写RTOS的第一步,创建一个工程。这个工程要能够在MDK环境中能够进行编译和仿真,不用借助任何的开发板和仿真器,完全基于Cotex-M3内核进行实验。现在我们开始创建这一个工程,首先打开MDK,我使用的版本是MDK525,大家的编译环境不必和我一样,自己到Keil的官网上去下载,这里就不作描述。我们需要用到CMSIS的标准库和启动文件,选择这两个即可。如下图所示:...
2019-01-29 22:41:46 1056
原创 IIC上拉电阻的选择
上周项目评审的时候,评审部门问了我一个问题:为什么单片机内部有上拉电阻,你们还要用外部的上拉电阻?我的答复如下:上拉电阻的选取要考虑上限值和下限值这两点:上限值的最大限制来至于RC的限制,因为上拉电限越大,那总线上的电流越小,给电容充电的速度也就越慢,这样会对IIC协议中电平信号上升沿或下降沿的最大变化时间造成影响,记忆芯片IIC总线在变化时会产生寄生电容,如下图2中的CBUS,寄...
2018-12-16 15:05:35 8462
原创 arm-linux-gcc交叉编译链安装
1、下载相应的工具包我们需要下载相应的安装包:gcc交叉编译链安装下载地址 把下好的包放到共享文件夹,再复制到Ubuntu系统中,一般地:我们放在/usr/local/arm下,然后输入下面代码解压:tar -jxvf arm-2009q3.tar.bz22、运行进入:/usr/local/arm/arm-2009q3/bin目录下,输入:./arm-none-linux-gnueabi-gcc
2016-12-04 19:55:38 983
原创 VMware Workstation12安装Ubuntu和VMware Tools教程
之前我通过百度经验上的过程来安装Ubuntu16,但是每次安装的时候没有什么问题,就是安装好了Tools,也设置好了共享文件夹,但是在路径:/mnt/hgfs 下每次都找不到共享文件夹。后来我研究了好久,应该是安装的时候出了问题。下面是正确可行的安装方法:一、下载Ubuntu镜像:Ubuntu官网下载地址二、创建虚拟机打开VMware Workstation,点击创建新的虚拟机 选择自定义,点
2016-11-15 11:37:12 6032
原创 this is android sdk requires android developer Toolkit version 23.0.0 or above解决方法
因为之前没有下载Android源码,然后就去Android Developed上下载了一个Android SDK,安装了一下源码。等我第二天起来打开Eclipse一看,工程报错。关闭工程再重新开Esclipse,就出现了如图所示的报错,连创建新工程也不行,Next选项是灰的,无法点击。 根据提示信息,应该是昨晚安装Android SDK的时候,把版本号给更改到最新的了。因为我自己的版本是22.
2016-10-11 14:32:02 1088
原创 OnClickListener cannot be resolved to a type解决方法
本人初学Android,看的是《第一行代码》,遇到的问题是在讲解Button控件的时候,发现点击事件的时候,一直报错。原因是没有加载相应的库。btn_three.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) {
2016-10-10 19:36:51 1155
原创 基于UCOSIII+机智云的远程空调遥控器
一年前,我通过师兄的介绍知道了机智云这家创业公司,后来,他们的经理来我们学校开了一次宣讲会,然后我就以个人开发者的名义申请了他们家的GoKit2代开发板,开始对这家公司有一定的关注。他提供的物联网云端的服务还是很不错的,最近听说拿好了B轮3亿的投资,服务应该还是做得不错的。 言归正传,我下面看始讲解一下怎么样接入机智云的云端服务和移植和使用方法。这里要先说明一点,不是只有机智云的开发板才可以接入机
2016-10-08 12:35:28 1338 2
原创 MPU6050对卡尔曼、一阶互补滤波、二阶互补滤波的比较
这是总体的滤波效果 这是放大的版的 可以看出,卡尔曼和二阶基本在重合在一起,一阶也还好,也没有差得太远。 这里是从一放在桌子上一段时间后再进行测试的,可以看出一阶的跟随性上面要比其他二个都要好。响应要快些,一开始不用经过太多的迭代。
2016-07-20 17:30:44 5157 3
原创 Win10安装DNW相关驱动
我用的是开发板使用的是S5PV210的芯片,想要使用DNW工具进行烧录程序就要先安装相关的驱动。下面我来说一下安装的具体步骤,因为常规方法是没有办法正常安装的。 步骤一: 要先禁止掉系统的强制驱动签名,怎么禁止呢?要进行高级重启 详情看这个链接,要记清楚,要不然重启了之后不记得步骤。 http://jingyan.baidu.com/article/624e74594dbc8d34e8b
2016-04-26 10:15:31 7051 5
原创 关于使用Makefile进行GCC编译报错问题解决方法
汇编代码如下:_start: ldr r0, =0x11111111 ldr r1, =0xE0200240 str r0, [r1] ldr r0, =0x0 ldr r1, =0xE0200244 str r0, [r1]flag: b flagMakefile代码如下:led.bi
2016-04-19 13:35:58 4139
原创 bash: ./arm-none-linux-gnueabi-gcc: No such file or directory解决方法
在64位Ubuntu 14.0LTS中运行 ./arm-none-linux-gnueabi-gcc -v 会出现下列j报错,问题是64位和32位不兼容造成。 解决方法: 运行下列代码sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0 安装完成后再运行:./arm-none-linux-gnueabi-gcc -v 出现
2016-04-04 22:56:58 3680 1
原创 Win10驱动修复失败问题解决方法
因为最近要做到一个远程的图像采集和处理,所以要用了视频采集卡。我用的是EasyCAP的视频采集卡,但是驱动怎么都装不上,被烦了好久,后来突然想起win8以后的驱动是有强制签名,而我安装的EasyCAP会不会是很久以前就做好的,没有签名不安装不上呢?于是我把强制驱动签名给禁止了,果然安装成功了。http://jingyan.baidu.com/article/624e74594dbc8d34e8ba5
2016-02-26 11:56:50 2315
原创 C语言数组指针问题
在网上看到一个这样代码:int main{ int a[5] = {1,2,3,4,5}; int *str = (int *)(&a+1); printf("%d\n%d\n", *(a+1), *(str-1)); return 0;}我一开始也陷入了陷阱里,没想这一个数组指针,以为只是普通的首地址加上一个数据类型的字节,于是我开始进行了下面一系
2016-02-26 11:45:41 985
原创 Raspberry Pi B安装系统,无需显示屏玩转树莓派
准备物品:1、树莓派开发板,我的是B型(比较老,建议买2B+);2、SD卡,用于存储,我用的是16G的(最低多少G我没查);3、手机5V适配器,给树莓派供电;4、一条RJ-45网线,连接到路由器上(你也可连接电脑,但是我没试过)。这里我们需要几款软件:1、SD卡格式化软件:SDFormatter链接:http://pan.baidu.com/s/1bnPCriZ 密码:ofwe2、系统写
2016-02-26 11:36:31 5388
原创 C语言实验七: 函数的程序设计-2
【选做题】设全社会共有n人,设计函数计算相对贫困率。要求:每人的可分配所得从键盘输入。输入输出均在主调函数内实现。#define _CRT_SECURE_NO_DEPRECATE#include<stdio.h>#include<malloc.h>int datalen = 0;struct students{ double mark; struct students *n
2016-02-26 11:21:04 1061
原创 NRF多机通信
最近在接了一个项目,要求各个设备能够联网(不是互联网)控制。NRF24L01刚好有这个功能。但是之前只做过一对一的通信,还是用例程的那一种。我在想,用两个地址,共用同一个通道应该也可以完成。后来他又要求发过去的数据还要能回传,这下我只好来研究多通道通信了。多机通信和一对一通信基本上相同,就是要配置其他通道的地址和使能其他通道的有效数据宽度,还有自动应答。这是接收机的:void NRF24L01_In
2016-02-26 11:12:33 1885
原创 Keil和MDK的安装与共存
【Keil C51的安装】这个编译器是51系列用的,可以用于开发STC89C52,STC12c5A系列,AT89C51系列等单片机。第一步:先下载Keil C51安装包http://pan.baidu.com/s/1jGtJb50(百度云盘链接,内附注册机和安装教程)【MDK5.10的安装】这个编译器主要用于ARM系列的单片机开发,STM32的官方库
2016-02-26 11:07:05 4210 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人