-
USB线不可能搞100米那么长。不就是一个USB硬盘吗?你跑过去那一下不就好了,USB硬盘本身就是便携式的,也不重,累不着的,
-
引用 21 楼 fpcc 的回复:
这个东西应该看你的设置情况了。
那里的设置呢?比方说……
-
微软也没听说出芯片啊
-
学习下
-
汇编其实是最灵活和最效率的, 只不过通常编码工作量也是最大.
-
void Samsung_camcoder(U8 *pBufOut)
{
U8 *pImage;
PINGPONG caminfo;
pImage = pBufOut;
if( codec_flag )
{
caminfo.flag = 1;
caminfo.y_address = y_address;
caminfo.cb_address = cb_address;
caminfo.cr_address = cr_address;
memcpy(pImage, &caminfo, sizeof(PINGPONG));
codec_flag = 0;
}
}
y_address、cb_address、cr_address是驱动中的全局变量,它们的值是由下面的函数获取传递得到:
void Buffer_codec_info_update()
{
U32 Y_size, C_size, P_size;
int temp;
unsigned int buffer_y, buffer_cb, buffer_cr;
if ( image_size == 1 )
Y_size = QCIF_XSIZE*QCIF_YSIZE;
else if ( image_size == 2 )
Y_size = CIF_XSIZE*CIF_YSIZE;
C_size = Y_size/4;
P_size = Y_size + C_size*2;
temp = (s2440CAM->CICOSTATUS>>26)&3;
temp = (temp + 2) % 4;
switch (temp)
{
case 0:
buffer_y = s2440CAM->CICOYSA1;
buffer_cb = s2440CAM->CICOCBSA1;
buffer_cr = s2440CAM->CICOCRSA1;
break;
。。。。
case 3:
buffer_y = s2440CAM->CICOYSA4;
buffer_cb = s2440CAM->CICOCBSA4;
buffer_cr = s2440CAM->CICOCRSA4;
break;
default :
buffer_y = s2440CAM->CICOYSA1;
buffer_cb = s2440CAM->CICOCBSA1;
buffer_cr = s2440CAM->CICOCRSA1;
break;
}
buffer_y += VIRTUAL_ADDR_OFFSET;
buffer_cb += VIRTUAL_ADDR_OFFSET;
buffer_cr += VIRTUAL_ADDR_OFFSET;
if( codec_flag )RETAILMSG(MSG_EN_1,(_T("Buffer is not read\r\n")));
codec_flag = 1;
y_address = buffer_y;
cb_address = buffer_cb;
cr_address = buffer_cr;
}
我在网上看到一篇帖子(gooogleman:Topic:如何实现OV9650摄像头拍照:
http://www.cnblogs.com/wogoyixikexie/archive/2009/11/04/1595676.html),很受启发,他好像是用下面的驱动程序函数获取到缓冲区数据地址,然后通过DeviceIoControl函数,得到数据并保存为图片:
void Samsung_camcoder_pr(U8 *pBufOut)
{
U8 *pImage;
PINGPONG_PR prinfo;
pImage = pBufOut;
if ( rgb_flag )
{
prinfo.flag = 1;
prinfo.rgb_address = rgb_address;
memcpy(pImage, &prinfo, sizeof(PINGPONG_PR));
rgb_flag = 0;
}
}
rgb_address的地址s2440CAM->CICOYSA1=CoFrameBuffer是由下面的函数得到的:
-
原来是这样:
在SPI驱动里的ThreadForTx线程中,有这么几句:
//Reset
pSPIregs->CH_CFG |= SW_RST;
//Sleep(5); //这难道就是每次调用WriteFile给SPI写数时有5ms延时的原因! haiou
RETAILMSG(SPI_MSG,(TEXT("[SPI] HS SPI reset\n")));
pSPIregs->CH_CFG &= ~SW_RST;复制代码
我现在的做法是将Sleep(5)给删掉了,这样就解决了原来的延时问题,而且SPI数据传送的结果也是对的。
但总感觉这样做有些暴力,BSP是三星官方发布的,他这样做肯定有其中道理,CH_CFG中的SW_RST到底是什么作用啊?干嘛要在这里Sleep(5)啊?
-
算了,都没人回复
-
msdn一本就够了
-
看不到程序,只能猜测:既然是查询方式,问题可能是出在ACK位上,是否有类似循环等待的语句,导致CPU占用率过高?
-
CPU接口指的是系统接口吧,占用了CPU的地址和数据总线,应该是可以的,但是改起来比较麻烦。
-
败一个VID没多少钱吧?好像是1W?
偶也想去弄个玩玩
-
happy new year
-
引用 6 楼 great_bug 的回复:
含油轴承,用了一段时间,润滑油因为挥发等原因减少,在刚开机的时候,轴和轴承的间隙中无法形成油膜,转动是有爬行状态,噪音很大.在爬行状态轴承的磨损是非常大的...摩擦使温度上升,会使含油轴承中的油流出一些,形成油膜,润滑改善,噪音又会降低...如果油膜始终无法形成,则会始终有较大的噪音...那是很痛苦的感觉.......
弱弱的问一下,什么是轴承,也就是说轴承是什么的简称。
-
另外你所说的CDC类的内存泄露问题,貌似微软已经说明过了,可以google一下。
对大型程序建议用API函数写,少用MFC的写,这样可以减少内存泄露问题。
-
7z中用的LZMA:
http://7z.sparanoid.com/sdk.html
zip算法是标准开源的
-
IRLML6401试试
-
引用楼主 whichuang 的回复:
小弟用9263的板子,自己做了bootloader,可是到了最后跳到NK在sdram的绝对地址就飞了。
首先做了个实验,跳到0x0000, (程序一开始就点灯)用了很多种方法(绝对运行了一下命令):
b? ? 0x0? ?
mov? pc, #0x0?
ldr? pc, =0x0
总是飞了,
希望大家指点指点
如何跳转到绝对地址啊!!
MMU没开时,绝对地址和虚拟地址一致,
MMU开时,ARM跑虚拟地址,有虚拟地址影射到绝对地址上。
也可以认为ARM由始至终都跑虚拟。
首先你要搞清楚你所访问的虚拟地址是否有影射的绝对地址。没有的话,自然会飞。
-
额、、这也。。
-
不要急,
1. 阅读器件手册, 了解是否 为msc51 体系, 现在许多51 MCU 没有内部12分频,
2. 确定器件型号, 下载串口通行例程, 用PC机与示波器,观察. 分析代码中积存器设置.
3. 需要修改Keil的编译头文件, 寄存器的分频与时钟 常数
4.