基于FPGA的 powerPC 串口扩展
来源:互联网 发布:初中科学培训软件 编辑:程序博客网 时间:2024/05/29 09:56
本人与硬件合作完成ppc405ep 串口扩展,主要负责vxWorks串口驱动的工作。
工具 :tornado 2.2(vxWorks内核的编译), UltraEdit(编写代码), BDI3000(bootrom的烧写)
步骤 :
1, 建立开发环境,如下图所示
2, 搞清vxWorks下串口驱动的架构,如下图示
3, 对于串口的工作原理,已经很清楚这里就不在详细说明了。对vxWorks的驱动架构有了认识后,下来就开始进行驱动。vxWorks中对串口的初始化流程如下所示:
sysHwInit()函数会安装一些外围硬件的驱动。具体的串口中,就是调用sysSerialHwInit()函数来初始化具体串口,我们可将扩展串口的驱动加入此函数中
void ExtendUartHwInit
(
void
)
{
UINT clkDivisor;
/*
* Disable and clear serial interrupts in the UIC for both UARTs
*/
intDisable(INT_LVL_EXT_IRQ_0); //IRQ
/*
* intialize ST16C654 device A descriptors (S0)
*/
ST16C654ChanA.int_vec = dev54AParas.vector;
ST16C654ChanA.channelMode = 0;
ST16C654ChanA.lcr = UARTA_REG(UART_LCR);
ST16C654ChanA.data = UARTA_REG(UART_RDR);
ST16C654ChanA.brdl = UARTA_REG(UART_BRDL);
ST16C654ChanA.brdh = UARTA_REG(UART_BRDH);
ST16C654ChanA.ier = UARTA_REG(UART_IER);
ST16C654ChanA.iid = UARTA_REG(UART_IID);
ST16C654ChanA.mdc = UARTA_REG(UART_MDC);
ST16C654ChanA.lst = UARTA_REG(UART_LST);
ST16C654ChanA.msr = UARTA_REG(UART_MSR);
ST16C654ChanA.outByte = sysOutByte;
ST16C654ChanA.inByte = sysInByte;
clkDivisor = 12;
ST16C654ChanA.clkFreq = systemInfo.freqPLLOUTA / clkDivisor;
/*
* Reset both devices
*/
evbNs16550HrdInit(&ST16C654ChanA);
}
- 基于FPGA的 powerPC 串口扩展
- 基于FPGA的串口通信
- 基于FPGA的串口设计
- 基于FPGA的串口设计(转)
- 基于FPGA的串口通讯设计
- 基于fpga的串口通信实现
- 基于FPGA的串口通讯设计与实现
- 基于FPGA的红外遥控解码与PC串口通信
- 基于FPGA的SDRAM串口调试RTL…
- 基于FPGA的红外遥控解码与PC串口通信
- 基于FPGA的PCIE总线扩展卡的设计
- 基于FPGA的以太网MII接口扩展设计与实现
- 【小梅哥FPGA进阶教程】第九章 基于串口猎人软件的串口示波器
- 【小梅哥FPGA进阶教程】第九章 基于串口猎人软件的串口示波器
- 【小梅哥FPGA进阶教程】第九章 基于串口猎人软件的串口示波器
- 基于PowerPC UPM 接口扩展数据采集卡
- 基于FPGA Uart串口通信实验
- 基于S3C2440和嵌入式Linux的扩展串口设计
- session.invalidate作用
- Android在标准linux基础上对休眠唤醒的实现(二)
- Java循环的谜题
- 把一个vc编写的exe文件的界面外观修改
- 【妖气冲天】小苏有朋性感禁播MV,大尺度、大尺度!要Hold住、要Hold住!
- 基于FPGA的 powerPC 串口扩展
- FP增长(发现频繁相集而不产生候选)
- GridView列中的多空格问题
- linux下条件变量的使用
- Useful SQL script
- 今天比较在状态,很high,java解惑的第二章字符的全部看完了。
- 基于AR虚拟现实技术的维基世界浏览器wikitude
- 跨越边界: 延迟绑定
- 溢出文本省略