创龙OMAPL138的SPI FLASH读写
1. 目前最大的疑问是OMAPL138和DSP6748的DSP部分是完全一样的吗(虽然知道芯片完全是引脚兼容的)?因此现在使用OMAPL138的DSP内核去读写一下外部的SPI FLASH芯片,先看下原理图,可惜创龙核心板的原理图不开源,所以我肯定不买他们家的板子

2. 尤其是startware这个软件库,究竟是用在ARM还是DSP的怎么区分?看资料ARM似乎可以唤醒DSP核?
3. 心血来潮,测试一下,同一个工程是不是可以同时用在ARM和DSP内核上,只是用不用的GEL文件。经过测试发现,如果建立的工程,选的器件是DSP6748,那么生成的.out文件可以用于DSP核,如果选择的是ARM-OMAPL138那么生成的.out用于ARM核,原来是建立工程的时候选择是ARM核还是DSP核

4. 言归正传,本来是搞SPI FLASH的,话题跑远了
void SPIInterruptInit(void)
{
// 注册中断服务函数
IntRegister(C674X_MASK_INT4, SPIIsr); // 映射中断事件
IntEventMap(C674X_MASK_INT4, SYS_INT_SPI1_INT); // 使能可屏蔽中断
IntEnable(C674X_MASK_INT4);
} /****************************************************************************/
/* */
/* SPI 初始化 */
/* */
/****************************************************************************/
void SPIInit(void)
{
unsigned char cs = 0x01;
unsigned char dcs = 0x01;
unsigned int val = SIMO_SOMI_CLK_CS; SPIReset(SOC_SPI_1_REGS); SPIOutOfReset(SOC_SPI_1_REGS); SPIModeConfigure(SOC_SPI_1_REGS, SPI_MASTER_MODE); SPIClkConfigure(SOC_SPI_1_REGS, , , SPI_DATA_FORMAT0); SPIPinControl(SOC_SPI_1_REGS, , , &val); SPIDefaultCSSet(SOC_SPI_1_REGS, dcs); // 配置 SPI 数据格式
SPIDataFormatConfig(SPI_DATA_FORMAT0); // 配置 SPI 数据格式及片选信号
SPIDat1Config(SOC_SPI_1_REGS, (SPI_CSHOLD | SPI_DATA_FORMAT0), cs); // 映射中断到 INT1
SPIIntLevelSet(SOC_SPI_1_REGS, SPI_RECV_INTLVL | SPI_TRANSMIT_INTLVL); // 使能 SPI
SPIEnable(SOC_SPI_1_REGS);
}
/****************************************************************************/
/* */
/* 配置 SPI 数据格式 */
/* */
/****************************************************************************/
void SPIDataFormatConfig(unsigned int dataFormat)
{
// 配置 SPI 时钟
SPIConfigClkFormat(SOC_SPI_1_REGS,
(SPI_CLK_POL_HIGH | SPI_CLK_INPHASE),
dataFormat); // 配置 SPI 发送时 MSB 优先
SPIShiftMsbFirst(SOC_SPI_1_REGS, dataFormat); // 设置字符长度
SPICharLengthSet(SOC_SPI_1_REGS, CHAR_LENGTH, dataFormat);
} /****************************************************************************/
/* */
/* SPI 传输 */
/* */
/****************************************************************************/
void SpiTransfer(void)
{
p_tx = &tx_data[];
p_rx = &rx_data[];
SPIIntEnable(SOC_SPI_1_REGS, (SPI_RECV_INT | SPI_TRANSMIT_INT));
while(flag);
flag = ; SPIDat1Config(SOC_SPI_1_REGS, SPI_DATA_FORMAT0, 0x1);
} /****************************************************************************/
/* */
/* SPI 中断服务函数 */
/* */
/****************************************************************************/
void SPIIsr(void)
{
unsigned int intCode = ;
IntEventClear(SYS_INT_SPI1_INT);
intCode = SPIInterruptVectorGet(SOC_SPI_1_REGS); while (intCode)
{
if(intCode == SPI_TX_BUF_EMPTY)
{
tx_len--;
SPITransmitData1(SOC_SPI_1_REGS, *p_tx);
p_tx++;
if (!tx_len)
{
SPIIntDisable(SOC_SPI_1_REGS, SPI_TRANSMIT_INT);
}
} if(intCode == SPI_RECV_FULL)
{
rx_len--;
*p_rx = (char)SPIDataReceive(SOC_SPI_1_REGS);
p_rx++;
if (!rx_len)
{
flag = ;
SPIIntDisable(SOC_SPI_1_REGS, SPI_RECV_INT);
}
} intCode = SPIInterruptVectorGet(SOC_SPI_1_REGS);
}
}
创龙OMAPL138的SPI FLASH读写的更多相关文章
- 创龙OMAPL138的NMI中断
1. 不可屏蔽中断部分代码,注册中断函数,6748有几个NMI的引脚? void InterruptInit(void) { // 初始化 DSP 中断控制器 IntDSPINTCInit(); // ...
- 创龙OMAPL138开发板测试(1)
1. 里面的DSP内核是否能单独使用?先测试一个LED灯的例程先,仿真器连接上开发板,显示有C6748和PRU还有ARM9.对了,板子的拨码开关要01111,是DEBUG模式才可以. 2. 下载一下. ...
- 创龙DSP6748的DAC例程研究
1. 创龙DSP6748开发板驱动TL5724这个DAC,输出指定的电压值,此程序是使用 IO 口模拟 SPI 实现与 TL5724 模块的数据交互. 2. 首先是初始化PSC函数 void PSCI ...
- nand flash,nor flash,spi flash,片上RAM,片外RAM
Flash有掉电数据保存的特点,RAM掉电则数据丢失,但是RAM的速度更高,擦写次数理论上没有限制,而Flash则不行. Nand Flash相比其余的几种flash优势在于可擦写次数多,擦写速度快, ...
- SPI Flash(W25Q16DV) 基本操作
读取厂家\设备 ID 发送 90H 指令,再发送 00h 的地址,然后接收即可. 代码如下: void SPIFlashReadID(int *pMID, int *pDID) { SPIFlash_ ...
- Jlink使用技巧之烧写SPI Flash存储芯片
前言 大多数玩单片机的人都知道Jlink可以烧写Hex文件,作为ARM仿真调试器,但是知道能烧写SPI Flash的人应该不多,本篇文章将介绍如何使用JLink来烧写或者读取SPI Flash存储器, ...
- RTT下spi flash+elm fat文件系统移植小记
背景: MCU:STM32F207 SPI flash: Winbond W25Q16BV OS: RTT V1.1.1 bsp: STM32F20x 1 将spi_core.c,spi_dev.c及 ...
- Arduino SPI + SPI Flash芯片W25Q80BV
W25Q80BV是台湾华邦电子(Winbond)生产的8M-bit串行flash芯片.主要特性有: 工作电压:2.5 ~ 3.6 V 功耗:读写(active)时4mA,低功耗(power-down) ...
- 【转】SPI FLASH与NOR FLASH的区别 详解SPI FLASH与NOR FLASH的不一样
转自:http://m.elecfans.com/article/778203.html 本文主要是关于SPI FLASH与NOR FLASH的相关介绍,并着重对SPI FLASH与NOR FLASH ...
随机推荐
- tcp的三次握手:通信的本质:通信通知与信息交换
tcp的三次握手:通信的本质:通信通知与信息交换
- linq项目中例子实例
在mvc项目中 var ls = (from i in gt.vendor_login join j in gt.vendor on i.vendor_id equa ...
- jquery 中 attr 和 prop 的区别
问题:在jQuery引入prop方法后,什么时候使用attr,什么时候使用prop,两者区别. 判断: 对于HTML元素本身所有的固有属性,在处理的时候,使用prop方法 对于HTML元素后来我们自己 ...
- IOS 创建简单表视图
创建简单表视图 此实例主要实现UITableViewDataSource协议中必需要实现的两个方法tableView:numberOfRowsInSection: 和tableView:cellFor ...
- 决策树 - 可能是CART公式最严谨的介绍
目录 决策树算法 ID3算法[1] C4.5 改进[1] "纯度"度量指标:信息增益率 离散化处理 CART(分类与回归树,二叉) 度量指标 二值化处理 不完整数据处理 CART生 ...
- oracle 11GR2 单机打补丁PSU 11.2.0.4.180717
上传补丁包,修改权限 su - oracle mdir /tmp/psu mv p6880880_112319_Linux-x86-64.zip /tmp/psu/mv databasepsu1807 ...
- BZOJ 1941: [Sdoi2010]Hide and Seek(k-d Tree)
Time Limit: 16 Sec Memory Limit: 162 MBSubmit: 1712 Solved: 932[Submit][Status][Discuss] Descripti ...
- S/4 HANA中发票输出切换回NAST
在S/4 HANA中,新的输出管理Output Management叫做SAP S/4HANA output control(输出控制),是基于BRF+的,而不是原来基于NAST的.关于S4新的输出控 ...
- [示例] Firemonkey 面包屑导航
原码下载:[示例]Firemonkey面包屑导航_Aone.zip 效果:(以下效果不用写一行代码)
- VCC、VDD、VSS以及VBAT的区别
在STM32 的学习中,发现有几种看起来相关的名称,分别是VCC.VDD.VSS.VBAT,在经过搜索查找之后,总结如下: 1.VCC的C是Circuit的意思,是指整个供电回路的电压, 也有人说VC ...