自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (4)
  • 收藏
  • 关注

原创 精读OSAL --时钟及休眠(hal_sleep.c)

CC25XX系列的SOC上面有两个高频时钟(32MHz外部晶振,16MHz的内部RC时钟),和两个低频时钟(32Khz的外部晶振,12KHz的内部RC时钟)。文档仔细看过就明白,16Mhz的内部高频时钟是不能作RF时钟,只能在某些时候(中断)作快速启动的时钟源,涉及RF的操作都要等待32MHz的外部晶振起振及稳定。所以32Mhz的晶振是必需的。而32Khz的低频时钟则可以二选一,内部32K

2016-09-23 15:57:29 2609

原创 精读OSAL --按键的执行流程(hal_key.c onboard.c)

OSAL的按键执行流程和普通单片机的写法还是有很大的不同,不过用回调函数的方法可以使按键模块内聚度高,是很好的模块化设计。底层移植时主要修改就是hal_key.c里面的内容,上层应用则配置key时传入一个回调函数,这个回调函数就是有按键操作时就会由hal调用,在回调函数做相应的处理,比如应用层生产事件,或者开始广播,什么的。。void HalKeyInit(void){}void

2016-09-23 15:24:10 1771

原创 Linux与Android

你闪开,我要装X了!!! linux成也GPL,败也GPL。 说到底,linux能成为优秀的内核是因为在开源协议GPL的保障下得到足够的发展,各厂商共同努力推动linux内核发展,特别是在服务器领域,所以成功是因为GPL。 而对于硬件厂商,一向是不愿意开源,开源就等于公开硬件设计了,而GPL的内核就要求厂硬厂商的驱动代码开源,于是就没有大多厂商支持linux,Nvidia虽然有linux的显卡驱动...

2016-01-18 10:34:10 249 1

原创 MSP430的应用笔记

有关MSP430开发过程中,要记住的问题都会记录在这。1.

2014-05-04 09:19:17 673

原创 GAE的应用笔记

GAE的APP地址被墙的解决办法:1.改hostping appengine.google.com 记下地址A:B:C:D修改C:\Windows\System32\drivers\etc\hosts文件,添加A:B:C:D  myappname.appspot.com用https://访问即可。GAE的dev_appserver.py运行提示ASCII错误的解决办法修

2014-03-07 17:15:50 641

转载 用SciTE打造带函数提示的STM32开发环境

IAR自带的IDE只有简单的语法高亮,用做开发STM32时经常需要查阅函数库头文件看函数原型,跳来跳去的不是很方便。而eclipse,slickedit之流又太占资源,我手上的两台笔记本两台台式机都只有512M DDR333的内存,机器性能可想而知。又想马儿跑,又想马儿不吃草,那只有自己动手丰衣足食了。使用SciTE来打造适合自己的低消耗高效率的开发环境。用的是SciTE的静态函数提示功能

2013-07-24 08:57:57 1181

原创 精读OSAL --我的SPI驱动的失败

很无奈,再分析完OSAL的内存分配代码后,发觉之前一直为之努力的SPI驱动太浪费RAM空间.用队列来实现异步操作想法不错,可惜在一串字符串显示时会用尽内存.而且内存分配不总是成功,这样带来不少麻烦. 最后回归到最简单的SPI驱动--------循环等待.又不能异步就连DMA都没用上.

2013-07-23 15:01:03 915 1

转载 内存分配方式及常见错误

内存操作对于程序开发人员来说,永远是一块雷区。在这片区域,总是不断的埋雷、排雷,而且往往是排雷花了非常大的代价。记得在公司实习时,有大概2个星期的时间,team的几个人去排雷——有地方发生了memory leak!而以我现在的认知来看,只有极少数的programer敢拍着胸脯说,非常熟悉内存操作,手到擒来不会排雷。针对这个情况,我要求自己在尽量去探索,以求少埋雷、甚至不埋雷(这是一个很大的挑战

2013-07-11 17:25:04 782

原创 精读OSAL --我的SPI驱动

当我仔细地看完OSAL里HAL的SPI驱动,发觉它并不是我们常用的普通SPI驱动.在数据前增加头,做成包的形式发数据.而我们的项目里有四外设要用SPI,而且是普通的SPI操作.最后用DMA的方式重新构造自己的驱动.概念如下,代码就不上了,需要的MSG吧. 首先,我构造一个全局的链表,每一个SPI操作都是先写到链表. 其次,考虑到SPI的通信方式,就不实现读写操作,只实现一个

2013-07-02 17:34:38 1133

原创 精读OSAL --回调函数的理解

这里其实不是从代码里出来的,只是自己想通了一些关于回调函数的问题.. 一直不明白回调函数怎么用... 其实很简单,举个例子:应用要从片外读FLASH,通过DMA,不用CPU干预操作... DMA传输一直在轮询处理完成没有的方法是非常低效..而OSAL中常用的回调就是解决这个问题.. 原应用: 其它操作;需要数据;读数据;等待完成读取;数据

2013-06-13 17:28:06 1486

原创 精读OSAL --SPI方式串行通信(_hal_uart_spi.c)

SPI种方式是可以在DMA的方式上同时共享缓冲区,来节省内存.spiRxBuf = dmaCfg.rxBuf;piRxDat = dmaCfg.txBuf; spiTxPkt[SPI_MAX_PKT_LEN]spiRxDat = dmaCfg.txBuf[0];//这个最难懂,其实就当是缓冲区就好子.解包后的数据放在这,让读函数来读.spiTxPkt = dmaCfg.txBu

2013-06-06 15:25:54 3795 3

原创 精读OSAL --DMA方式串行通信(_hal_uart_dma.c)

跳过初始化的内容.先讲接收操作:DMA方式的具体操作可以查看DMA的相关内容.这里有意思的是缓冲区算法的实现,和中断方式还是有些区别.               |BAUD|DXBUF|               |..........|............|               |..........|............|

2013-06-04 11:18:48 7429 4

原创 精读OSAL --中断方式串行通信(_hal_uart_isr.c)

当在HAL里读完 _hal_uart_isr.c 就明白了TI的工程师写的发送接收算法. static void HalUARTInitISR(void) static void HalUARTOpenISR(halUARTCfg_t *config)初始化和打开没什么好讲的,读文档就有了. 先在这里讲缓冲区算法             |--------------

2013-05-31 10:08:10 7489 2

rime_五笔_98

从ibus里提的五笔98,用于remi. 支持词频等等

2013-11-13

基于ISO14443A协议的RFID芯片模拟前端设计

基于ISO14443A协议的RFID芯片模拟前端设计

2012-08-02

DIY_AVR_USB游戏手柄

在国处看到的一个USB手柄制作。下了自己改动了一下,加上了一点注释。

2011-07-04

devkitadv-GBA开发工具

devkitadv GBA开发工具 任天堂GBA官方开发包安装及开发环境的设置 Romandoo 解压安装包至某目录后,安照以下步骤操作: 一: 安装CYGWIN工具 运行CYGWIN_SETUP目录下setup.exe进行cygwin的安装 选INSTALL FROM LOCAL DIRECTORY 在SELECT INSTALL ROOT diretory 选择安装目录 next> 再NEXT 在弹出的窗口中,在Perv Curr Exp 中选Curr 点开列表栏中各项, 选 base 的 cygwin ash bash login sh-utils 选 devel 的 autoconf automake binutils gcc gdb make 选 shell下的 ash bash sh-utils 置NEW栏显示版本号,表示将其安装,而其它的工具选为skip表示跳过不安装 最后选next开始安装! (注意,我为了节省空间,我删除了许多不重要的东西,其实cygwin下有高达几百m的各式各样的工具,今后你可根据自已需要到网上下载安装去) 二、安装任天堂官方开发包 在 AGB LIBRARY3.0中点 agbsetup1安装 注意,一定要安装到c:\agb目录下,因为这是官方的默认目录,有一些例子与这个目录关连了 所以最好选这个目录 ,不然可能编不过去。否则自已设置会麻烦一点的。 修改c:\autoexec.bat 文件增加如下代码行 SET AGBDIR=C:\AGB 三、安装CYGWIN补丁 (由于刚安装完的cygwin版本并不支持arm cpu,所以需要将某些程序、库覆盖成arm相关的程序库) 将arm-thumb-elf连目录一起copy到安装好的cygwin目录的\lib\gcc-lib下 将bin-patch目录下的所有文件copy到cygwin目录的bin下面覆盖 将include patch目录下文件copy到cygwin目录的include下面 四:编绎例子程序 OK!前三步已经将我们的开发环境构好了!! 现在我们可以正式进行开发了,至于开发技术吗,在agb目录的doc下应有尽有,大家可以好好研究一下子。 下面我就介绍如何编绎代码了。 编绎也是很简单的一件事情了。 官方资料里有许多的例子,和两个游戏demo源代码。 我们就拿里面的一个具有代表性的例子编绎吧 functional_sample 在编绎之前,你必须重起你的机器,因为刚才我们修改了 autoexec.bat 而设置此时需要生效才行。(当然也有其它办法不必重起就生效,说来话长了) 好,重起之后,我们运行刚才装好的cygwin程序 进入了一个控制台窗口 这个控制台shell,命令行支持的是类式linux的指令,你可能不太了解,不过你不用担心呵 我们不需要记太多的命令指令,很简单的几句这可以了 就当是dos命令,只不过命令名称变了而已 下面是几个对应 ls 相当于dos下的dir指令 cd 相当于dos下的cd 指令 你也就需要这两个指令就搞定了,呵 行,那么我们正式开始: cd c: cd agb cd src cd samples cd functional_sample //以上几步作的就是进入c:\agb\src\samples\functional_sample目录下,和dos一样吧,呵 然后注意了,忘了提醒有关functional_sample这个例子的一个问题, 就是这个例子源代码share.c 中定义了 vu16 Cont; vu16 Trg; 但是在share.h中又申明为 extern u16 Cont; extern u16 Trg; 该编绎器检查认为是错误,所以你要改一下 将share.h文件里改成 extern vu16 Cont; extern vu16 Trg; 否则编绎报错。 好,改好share.h之后,我们输入 make 回车! 好,你可以看到现在开始正式编绎了,太爽了,官方的例子在被编绎,呵 过了几十秒编绎完成之后,就会生成了bin与elf文件 你用visualBoyAdvance打开bin文件看一看是 什么例子,哇,原来是个非常强的GBA各个功能展示,有alpha混合,有图层显示 有马塞可显示,有放大缩小,有精灵移动,旋转,字体显示,声音,有地图显示,有窗口模式。 但是需要注意的一个问题:::::: 如果你想使用gcc里面的库函数 需要在makefile里面修改一下 CFLAGS 中加入 -I"C:\cygwin\include" LDFLAGS 中加入 -lm 否则你将无法使用sin,cos,sqrt等有用的库函数 编完这个,你可以再去试试看

2009-07-26

空空如也

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

TA关注的人

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