S3C2440写一个通过USB下载文件到nand flash的裸奔程序

「已注销」 2011-01-08 01:55:53
求思路,如何配合DNW来编写程序?
...全文
449 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
mhl920 2011-04-08
  • 打赏
  • 举报
回复
这是我找到的一个USB中断服务程序 希望对楼主有帮助 我写的连中断都进步去 郁闷死了

祝楼主好运
mhl920 2011-04-08
  • 打赏
  • 举报
回复
数据传输:
一般采用中断传输模式,故进入中断后先判断中断类型,再具体执行中断类型的服务程序。如下程序:
void __irq USB_INT()
{
U8 usb_Int, Ep_Int;
U8 Index=rINDEX_REG; //保存索引寄存器值(现场保护)
usb_Int=rUSB_INT_REG; //保存中断标志寄存器
Ep_Int=rEP_INT_REG;
if(usb_Int&1) //总线上超过3ms没有活动信号引起中断
{
rUSB_INT_REG=1; //清除中断标志位
}
if(usb_Int&2) rUSB_INT_REG=2; //恢复引起的中断
if(usb_Int&4) //接收到复位信号引起的中断
{
USB_reset(); //重新配置USB设备
rUSB_INT_REG=4; //复位USB后清除复位中断
PrepareEp1Fifo(); //准备发送数据
}
if(Ep_Int&1) //端点0中断
{
rEP_INT_REG=1;
Ep0Handler(); //进入控制传输中断处理程序
}
if(Ep_Int&2)
{
rEP_INT_REG=2;
Ep1Handler(); //进入Ep1中断处理程序(BULK IN)
}
if(Ep_Int&4) rEP_INT_REG=4;
if(Ep_Int&8)
{
rEP_INT_REG=8;
Ep3Handler(); //进入Ep3中断处理程序(BULK OUT)
}
if(Ep_Int&0x10) rEP_INT_REG=0x10;
ClearPending(BIT_USBD); //USB设备中断处理完毕,清除中断标志位
rINDEX_REG=Index; //恢复索引寄存器原来的值(恢复现场)
}
其中控制传输中断服务程序(Ep0Handler())处理主机向USB设备发出命令的中断。在此程序中,要分别对接收命令过程中出现的有效命令(即令牌包)写入(包括对命令内容的处理)、命令写入出错引起的停止、命令传输结束进行处理。
mhl920 2011-04-08
  • 打赏
  • 举报
回复
楼主加油啊 楼主比我强多了 我连中断都进不去 郁闷死了
ffeige1984 2011-01-20
  • 打赏
  • 举报
回复
参考下DNW驱动,和FL2440的程序部分。
「已注销」 2011-01-16
  • 打赏
  • 举报
回复
又有最新进展了,不论我怎么清除中断标志寄存器,总是无法退出USBD中断,我就索性加上了几个函数,主要是USB寄存器初始化的和判断HOST所发送的请求的语句,结果,在中断有限次数后就不再中断。看来,USB初始化是一定要提前运行,才能保证,USB的正常工作,我怀疑这里的频率设置有问题。还待进一步研究。
loongembedded 2011-01-15
  • 打赏
  • 举报
回复
期待楼主早日解决分享一下,加油!
loongembedded 2011-01-15
  • 打赏
  • 举报
回复
rINTMSK = 0xedffffe0
这条指令是在中断部分还是USB Device驱动部分的啊?
「已注销」 2011-01-15
  • 打赏
  • 举报
回复
我找到了一些猫腻了,首先我把USBD的中断打开,通过JTAGE口下载到板子上,一定会在rINTMSK = 0xedffffe0 这里卡住,但是如果我把开发板的电源关掉,再开启,在reset一下,就可以工作正常,能成功进入USBD中断,不过USBD中断会一直发生,
rSRCPND = (0x1<<25);
rINTPND = rINTPND;
按键的中断这样就可以清除,USBD的貌似就不行。

请有经验的人给点思路,谢谢。
「已注销」 2011-01-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 loongembedded 的回复:]
rINTMSK = 0xedffffe0
这条指令是在中断部分还是USB Device驱动部分的啊?
[/Quote]

是在端口初始化部分,是USB Device驱动部分。

很奇怪,我就纳闷了怎么就是开不了中断呢,而且就光USBD的中断开不了,USBH都可以开,难道是那个 Pin 没设置好? GPG12 的好像是USB 的soft link 不知道有没有影响。我现在把GPG12设置成output , 寄存器全写1, 上拉电阻关。 高人给点思路吧,谢谢。
「已注销」 2011-01-15
  • 打赏
  • 举报
回复
看来一切都得从中断开始做起

但是我遇到了一个问题,为什么我只要开USBD的中断 rINTMSK = 0xedffffe0; 开发板就卡住。这条指令怎么也执行不了。
UN_ChairMan 2011-01-09
  • 打赏
  • 举报
回复
飞凌嵌入式的TE2440开发板的bootloader程序可做参考。跟裸奔差不多
loongembedded 2011-01-08
  • 打赏
  • 举报
回复
楼主从这个链接下载http://download.csdn.net/source/559176代码看看。
# 主成分分析PCA降维算法Python实现 - 数据降维和特征提取 ## 项目简介 本项目提供了主成分分析(Principal Component Analysis, PCA)算法的完整Python实现,包含从数据预处理到结果可视化的全套功能。PCA是一种经典的无监督降维算法,通过线性变换将高维数据投影到低维空间,同时保持数据的最大方差,广泛应用于数据降维、特征提取、数据可视化等领域。 ### 功能特点 - **完整的PCA算法实现**:包含数据标准化、协方差矩阵计算、特征值分解等核心步骤 - **多种数据生成器**:内置多种类型的测试数据生成功能 - **丰富的可视化功能**:支持解释方差图、散点图、双图、热力图等多种可视化方式 - **灵活的参数配置**:支持自定义主成分数量、标准化选项等 - **全面的分析工具**:包含特征重要性分析、重构误差计算、最优成分数量确定等 - **详细的示例代码**:提供多个应用场景的完整示例 ## 安装说明 安装依赖 ```bash pip install -r requirements.txt ``` ## 使用说明 ```bash # 运行所有演示 pytho ```bash # 运行所有演示 python main.py --demo all # 运行特定演示 python main.py --demo iris # 鸢尾花数据集分析 python main.py --demo high_dim # 高维数据降维 python main.py --demo correlated # 相关性数据分析 python main.py --demo comprehensive # 综合分析 # 指定输出目录 python main.py --output results ```
基于Javaweb的机房管理系统的设计与实现编程环境:idea2022平台,jdk1.8,tomcat8.5编程语言:java语言,编程技术:前端vue,div,css,后端:springboot框架,数据库:mysql5.7版本,Navicat Premium 12插件前台+后台前台学生注册,登录机房安全公告列表, 点击查看详情机房信息列表(点击搜索机房,查看到机房的详细情况)上机预约:选择机房,查看电脑信息,显示多少台电脑,点击可以查看机房的电脑详情,多少空闲的,点击可以预约电脑(填预约时间,预约人)机房消防检公布设备故障上报:注册的学生也可以进行设备故障报修后台管理员管理员信息管理机房安全公告管理机房消防检查管理(记录每次的消防检查,对检查结果进行公布)教师信息管理维修人员管理注册学生管理,审核机房信息管理(多个机房)设备信息管理(电脑设备)填CPU,内存,品牌,显卡等基本信息日志信息管理教师教师资料修改机房上机预约管理软件设备报修,查看维修结果硬件设备报修,查看维修结果上机信息管理:设置上机信息,下机信息,查看上机时间,查看到历史上机信息维修人员资料信息修改软件设备报修管理,填维修结果硬件设备报修管理,填维修结果设备故障报修管理:主要是针对学生前台提交的报修进行管理,处理学生学生资料修改我的预约信息我的上机:点击选择某个电脑进行上机,只能选择预约同意的电脑进行上机,我的下机:上机结束后,点击可以下机,并且计算出上机时间我的历史上机我的设备故障报修管理

19,523

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧