博客

程序的思考「从单片机到PC」

关键词:
关于程序的执行,以前想的不多,没有意识到一个程序在运行时,从哪里读指令,数据又写在哪里呢 从单片机上知道,在上电的那一刻,MCU的程序指针PC会被初始化为上电复位时的地址,从哪个地址处读取将要执行的指令,由此程序在MCU上开始执行(当然在调用程序的 main之前,还有一系列其他的的初始化要做,如堆栈的初始化,不过这些我们很少回去修改)。PC在上电时,和MCU差不多,不过读取的是BIOS,... 阅读详情

基于TI-RTOS的CC2650DK开发(15)---Clock(时钟)

关键词:
时间服务 时间服务概览 • 在 SYS/BIOS和XDCtools中,有几个模块涉及计时和时钟相关服务: ti.sysbios.knl.Clock模块:负责内核用于保持时间轨道的周期性系统tick。所有SYS/BIOS APIs期望一个timeout参数来中断根据时间ticks所设置的timeout。时钟模块用于调度那些在时钟ticks中指定的内部运行的函数。默认情况下,... 阅读详情

6种常见的单片机数字滤波算法

关键词:
单片机主要作用是控制外围的器件,并实现一定的通信和数据处理。但在某些特定场合,不可避免地要用到数学运算,尽管单片机并不擅长实现算法和进行复杂的运算。下面主要是介绍如何用单片机实现数字滤波。 在单片机进行数据采集时,会遇到数据的随机误差,随机误差是由随机干扰引起的,其特点是在相同条件下测量同一量时,其大小和符号会现无规则的变化而无法预测,但多次测量的结果符合统计规律。为克服随机干扰引起的误差,... 阅读详情

MCU产品、软件、生态系统的演变及未来展望

关键词:
作者:王朋朋 单片机进入中国30年,也正是单片机高速发展的时代。从简单的控制到嵌入式系统,再到物联网,从工业领域到消费电子、安防、医疗、汽车、智能家居等产品,单片机无处不在,并从高科技领域越来越多的进入我们的日常生活。 单片机的发展从8位开始,目前8位单片机仍占有较高市场份额,在很多应用中发挥重要作用,但32位的ARM产品显然成长更快。从8位到32位,不仅仅是位数和CPU内核的变化,在软件开发、... 阅读详情

基于TI-RTOS的CC2650DK开发(14)---邮箱

关键词:
Mailboxes(邮箱) ti.sysbios.knl.Mailbox模块提供了一系列函数管理mailboxes。Mailboxes可用于在相同处理器的两个task中传递缓冲。一个Mailbox实例可用于多个readers和writers。 Mailbox模块拷贝缓冲到合适尺寸的内部缓冲。这些缓冲的尺寸和个数在Mailbox实例创建时指定。拷贝在通过Mailbox_post()发送缓冲时建立。... 阅读详情

基于TI-RTOS的CC2650DK开发(13)---门

关键词:
Gates(门) Gates是用于防止并发访问代码关键区域的设备。各种门关于如何锁住关键区域的实现并不一样。 线程可以被更高优先级线程抢占,一些代码段在被另一个线程执行前需要被一个线程执行完毕。使用代码改变关键区域的全局变量这样的普通应用需要通过Gate来进行保护。 Gates通常用于禁用一些级别的抢占,如禁用task切换或甚至硬件中断,或用于二元semaphore。通过使用一个key,... 阅读详情

基于TI-RTOS的CC2650DK开发(11)---信号量

关键词:
信号量(Semaphores) SYS/BIOS在semaphores的基础上提供了一系列用于任务间同步和通信的函数。Semaphore通常用于协调访问一系列竞争任务间的共享资源。Semaphore模块提供的函数通过Semaphore_Handle类型句柄来操作semaphore对象的访问。参阅video introducing Semaphores进行概览。 无论是简单的(FIFO)... 阅读详情

基于TI-RTOS的CC2650DK开发(10)---空闲循环

关键词:
The Idle Loop dle Loop是 SYS/BIOS中的后台线程,在没有Hwi、Swi或Task时持续运行。任何其它线程在任何时间可抢占Idle Loop。 Idle管理器允许你在Idle Loop中插入函数运行。在configured. Idle_loop中会调用的每个Idle对象所相联的函数。Idle Loop每次调用一个函数,并在一个连续循环中往复调用所有函数。... 阅读详情

基于TI-RTOS的CC2650DK开发(9)---任务示例

关键词:
Task Hooks示例 下例使用了单个Task hook集。此例演示了如何读写每个hook集关联的Hook上下文指针。 首先是C代码:

基于TI-RTOS的CC2650DK开发(8)---任务

关键词:
3.6 Tasks SYS/BIOS task对象是由Task模块管理的线程。Tasks的优先级高于Idle Loop并低于硬件中断和软件中断。参阅video introducing Tasks进行概览。 Task模块基于task的优先级和当前task的运行状态动态地安排和抢占tasks。 这确保了处理器永远运行那些拥有最高优先级的线程。tasks的优先级总共有32个级别,默认优先级是16。... 阅读详情

基于TI-RTOS的CC2650DK开发(6)---硬件中断

关键词:
3.4 硬件中断 硬件中断(Hwis)是应用为了回应外部异步事件所必须处理的关键进程。SYS/BIOS中特定target/device的Hwi模块用于管理硬件中断。请阅读概述,请参考document introducing Hwis。 在典型的嵌入式系统中,中断由装置周边设备或由外部设备传给处理器。两种情况都使中断由处理器导向ISR地址。任何影响Swi和Task调度的SYS/BIOS... 阅读详情

基于TI-RTOS的CC2650DK开发(4)---DOGM128W-6 LCD显示

关键词:
CC2650DK这块开发板最大的优点就是自带一块128*64像素的液晶显示屏,用多块板在室外做实验时可以脱离电脑,这是非常有用的。今天就来讲讲这块液晶的使用。当然,先上例子再详细讲解。 需要注意,这块液晶所使用的驱动需要手动引入,插麻烦。 1.打开CCS,选择菜单【Project】-->【New CSS Project】,弹出New CSS Project对话框: 2.【... 阅读详情

基于TI-RTOS的CC2650DK开发(3)---按钮的使用

关键词:
关于按钮,TI公司有现成例子,只需将例子pinInterrupt导入CCS即可,以下代码是我在pinInterrupt基础上稍做修改,去掉异常判断,使得看上去更简单、轻松些。 #include "Board.h" /* Pin driver handles */ static PIN_Handle buttonPinHandle; static PIN_Handle ledPinHandle... 阅读详情

基于TI-RTOS的CC2650DK开发(1)---开发环境搭建

关键词:
作者:abatei 看了下TI公司的开发工具Code Composer studio(CCS),基于eclipse,比Ubuntu下的vi好用得多了。实在是不喜欢在Linux下开发,太麻烦,无代码追踪,学习起来太不方便。TI公司有自己的操作系统TI-RTOS,我看了下,注释超级详细,代码编写堪称典范,如获至宝啊,看来商业代码和开源代码还是有区别的。最终决定用TI-RTOS来学习CC2650芯片。... 阅读详情

自动驾驶领域巨头攒动 智能互联时代将近?

关键词:
近日,亚马逊被曝一年多以前成立团队,研究无人驾驶技术。该团队由十几名成员构成,成立初衷在于为亚马逊组建包括无人车在内的配送和物流网络。目前,亚马逊该计划还处于初级阶段,未来可能会使用包括无人卡车、铲车、无人机在内的自动交通工具来配送包裹。 与此同时,苹果的无人车团队也遭到了曝光。据上周五来自公开记录的一份苹果文件显示,目前正在为苹果测试自动驾驶汽车软件的苹果工程师中有四位拥有NASA背景,... 阅读详情

页面