DSP5509的GPIO学习-第5篇
1. 使用CCS V6.1版本,目前已经不局限于仅仅把实验搞清楚了,要深入去探究内部的原理,本章看下GPIO实验
2. 在CCS启动的时候,提示,这个问题是什么,XDAIS是什么?XDAIS (eXpress DSP Algorithm Interoperability Standard)
See details below...
Unrecognized product of type 'com.ti.rtsc.XDAIS' is required by project '5509gpio' -
please install at least one product of this type before building this project.
在Codec Engine文档中经常看到的xdais,实际上就是TMS320 DSP Algorithm Standard的另一个名字。根据TI官方白皮书,xdais标准一共提供了39条规则,15条指南。大致了解下,不深入研究。
3. eXpress 是什么?大致理解技术TI制定了一套写代码的标准,大家按这个标准写的代码比较统一,相互之间看的懂。
4. 出现问题如下:这句话究竟是什么意思?是指定内存RAM大小的?
5. 还是之前的问题,一点击连接,CCS就自动关闭,看一下CCS的log日志,怀疑是JRE出了问题。
vm_info: Java HotSpot(TM) Client VM (24.60-b09) for windows-x86 JRE (1.7.0_60-b19), built on May
7 2014 13:09:52 by "java_re" with unknown MS VC++:1600
6. 看下CCS的日志,异常的访问变量,什么鬼?
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x66b63432, pid=6488, tid=4088
#
# JRE version: Java(TM) SE Runtime Environment (7.0_60-b19) (build 1.7.0_60-b19)
# Java VM: Java HotSpot(TM) Client VM (24.60-b09 mixed mode windows-x86 )
# Problematic frame:
# C [DebugServer.dll+0x393432]
#
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
7.根据上面的好像是DebugServer.dll这个动态连接库有问题,看下面的,JAVA不识别微软的VC++,真心不知道这个是什么鬼。
vm_info: Java HotSpot(TM) Client VM (24.60-b09) for windows-x86 JRE (1.7.0_60-b19),
built on May 7 2014 13:09:52 by "java_re" with unknown MS VC++:1600
8. 重新安装CCSV6.1,问题解决。连接目标开发板,这个时候还没有烧写.out文件,可以看到程序指向0xFF8000这个地址,这个地址是什么用途?这个是芯片内部固化的bootloader,它根据外部的GPIO引脚高低电平,决定启动模式。
9. 0xFF8000这个地址保存的什么代码?看不太懂
10. 加载.out文件,pc指针正确,启动地址是0x0040be
11. 看下cmd文件,我觉的很有必要去研究下这个cmd文件,cmd文件是对物理存储器的管理,分配,和使用情况。R可读,W可写,X可执行,I可初始化,一般PAGE 0存放程序空间,PAGE 1存放数据空间。origin其实地址,length是空间大小。
MEMORY //MEMMORY声明有哪些存储器,他们的位置和大小。
{
PAGE :
PROG0(RWX) : origin = 04000h length = 08000h
P_VECT(RIX) : origin = 0FF80h length = 00080h
PAGE :
DATA0(RW) : origin = 0C000h length = 04000h
}
12. 看下SECTION,
SECTIONS
{
.vectors : { } > P_VECT PAGE 0 //中断向量表
.text : { } > PROG0 PAGE 0 //代码段
.cinit : { } > PROG0 PAGE //变量
.csldata : { } > DATA0 PAGE
.stack : { } > DATA0 PAGE //系统栈空间
.sysstack : { } > DATA0 PAGE
.bss : { } > DATA0 PAGE //全局变量和静态变量
.cio : { } > DATA0 PAGE
.const : { } > DATA0 PAGE 1 //const声明的变量,浮点数
.sysmem : { } > DATA0 PAGE //malloc等使用的空间,那就是堆喽
}
13. 最后一个问题,看下代码,问题在于,我不知道这次用的是那个GPIO引脚?The 5509A provides eight dedicated general-purpose input/output pins, GPIO0−GPIO7,还要只有8个GPIO,手指头都数的过来,IODIR设置8个都输出,IODATA设置高低电平的。这次是GPIO7,芯片第6脚。
main() //其实不过
{
/*初始化CSL库*/
CSL_init();
/*设置系统的运行速度为144MHz*/
PLL_config(&myConfig);
/*确定方向为输出*/
GPIO_RSET(IODIR,0xFF);
while()
{
GPIO_RSET(IODATA,0x00);
delay();
GPIO_RSET(IODATA,0x80);
delay();
}
}
14.新的疑问,C5509A的引脚都不复用的吗?
DSP5509的GPIO学习-第5篇的更多相关文章
- DSP5509的中断学习-第4篇
1. 编译工程的时候出现一个问题,如下 specifies large memory model, which is not compatible with small memory 2. 修改工程设 ...
- 一步步学习javascript基础篇(0):开篇索引
索引: 一步步学习javascript基础篇(1):基本概念 一步步学习javascript基础篇(2):作用域和作用域链 一步步学习javascript基础篇(3):Object.Function等 ...
- 一步步学习javascript基础篇(3):Object、Function等引用类型
我们在<一步步学习javascript基础篇(1):基本概念>中简单的介绍了五种基本数据类型Undefined.Null.Boolean.Number和String.今天我们主要介绍下复杂 ...
- Python3学习(3)-高级篇
Python3学习(1)-基础篇 Python3学习(2)-中级篇 Python3学习(3)-高级篇 文件读写 源文件test.txt line1 line2 line3 读取文件内容 f = ope ...
- Python3学习(2)-中级篇
Python3学习(1)-基础篇 Python3学习(2)-中级篇 Python3学习(3)-高级篇 切片:取数组.元组中的部分元素 L=['Jack','Mick','Leon','Jane','A ...
- Python3学习(1)-基础篇
Python3学习(1)-基础篇 Python3学习(2)-中级篇 Python3学习(3)-高级篇 安装(MAC) 直接运行: brew install python3 输入:python3 --v ...
- ASP.NET MVC学习之过滤器篇(2)
下面我们继续之前的ASP.NET MVC学习之过滤器篇(1)进行学习. 3.动作过滤器 顾名思义,这个过滤器就是在动作方法调用前与调用后响应的.我们可以在调用前更改实际调用的动作,也可以在动作调用完成 ...
- JMeter学习-016-思路篇之-山重水复柳暗花明
首先,此文非技术类博文,为思路类的博文,敬请参阅,欢迎共同探讨! 今天在编写 JMeter 接口监控脚本时,遇到了一个问题,在解决问题的时候,思路出现了偏差,导致了自己在解决问题时,绕了弯,浪费了些时 ...
- RabbitMQ学习总结 第一篇:理论篇
目录 RabbitMQ学习总结 第一篇:理论篇 RabbitMQ学习总结 第二篇:快速入门HelloWorld RabbitMQ学习总结 第三篇:工作队列Work Queue RabbitMQ学习总结 ...
随机推荐
- sort给文件按照大小排序
ls -l|sort -n -k5 -n 表示以数值排序-k5 表示以第几列排序还可以用 -t参数指定行内容的分隔符 参考链接:http://www.cnblogs.com/myd620/p/6002 ...
- Linux学习总结(二) 网络配置-NAT方式静态IP配置篇
一:DHCP 服务验证 1: 之前我们在里面已经装好了centos,当时我们选择的组网方式为NAT方式,那么我们怎么样如何快速实现虚拟机系统访问外网呢?能不能直接上网呢,来我们试一下ping baid ...
- php auto_prepend_file和auto_append_file的妙用
这是一个鲜为人知的设置! auto_prepend_file 和 auto_append_file 是在php.ini中进行配置的2个参数,auto_prepend_file 表示在php程序加载第一 ...
- UIView常用的一些方法setNeedsDisplay和setNeedsLayout
1,UIView的setNeedsDisplay和setNeedsLayout方法 首先两个方法都是异步执行的.而setNeedsDisplay会调用自动调用drawRect方法,这样可以拿到 UI ...
- 洛谷P3812 【模板】线性基
题目背景 这是一道模板题. 题目描述 给定n个整数(数字可能重复),求在这些数中选取任意个,使得他们的异或和最大. 输入输出格式 输入格式: 第一行一个数n,表示元素个数 接下来一行n个数 输出格式: ...
- pastedeploy
3.1作用 不修改WSGI应用程序的情况下通过配置文件配置WSGI服务. filter:过滤器,滤网. pipline:管道 app:application 应用,在这个语境下我举个例子吧,lavab ...
- HTML+css 文字只显示一行
电脑端 设置行高,超出隐藏 p{ width: 80%; height: 16px; line-height: 16px; display: block; overflow: hidden; text ...
- go加密算法:非对称加密(三)--Elliptic
看了2星期的区块链原理与运行机制,加密这里开始变得有些生疏,花了一天时间复习了一些;看到了之前忽略的,也学会了椭圆曲线加密. //基础板:浅显易懂package main import ( " ...
- yii学习笔记(1),目录结构和请求过程
最近找找工作面试,发现很多要求会yii.于是准备学习一个新的框架 先在腾讯课堂找了个视频看了一下,然后去网上现在了“归档文件”(还有一种方式是通过php的包管理工具“composer”安装) 归档文件 ...
- Struts2+Datagrid表格显示(可显示多表内容)
概述 最近学到EasyUI的Datagrid数据网格,然后就做了一个小例子,中间层利用Struts2来完成,DAO层用的是Hibernate. 数据库 数据库涉及到stuednt(name,noid, ...