求助: 关于linux下i2c驱动的一些疑问 [问题点数:50分]

Bbs1
本版专家分:0
结帖率 16.67%
Bbs1
本版专家分:16
Blank
GitHub 绑定GitHub第三方账户获取
Linux下i2c驱动
Linux下I2C<em>驱动</em>和对应的测试程序
Linux下的i2c驱动
我使用 pca9564芯片挂在地址数据线上实现<em>i2c</em>功能。目前正在写<em>驱动</em>程序,使用到了内核提供的 <em>i2c</em>-pca-platform。rnrn我看到资料说,在注册<em>驱动</em>之前必须实例化一个设备。使用类似 <em>i2c</em>_register_board_info(), platform_add_devices()的函数。rnrnrn我应该在<em>驱动</em>的哪部份写这些函数呢? 这些函数又是如何与<em>i2c</em>-pca-platform中的函数关联呢?或者说我在编译<em>驱动</em>的时候需要把添加设备的这些函数也编译进去么??rnrn我第一次写<em>驱动</em>程序,大虾们帮帮忙啊,先谢谢了。
关于LINUX下驱动一些不明白
刚刚学了LINUX下<em>驱动</em>的编程rnrn但是有<em>一些</em>疑惑,希望高手能够给小子解答一下,感谢万分!!!rnrn我原先学过单片机,在单片机的开发中,如果用到传感器之类的,有些传感器都有自己的通信协议,为了能够正确的接受传感器的数据,也必须根据通信协议写<em>驱动</em>。就小子我个人现在对<em>驱动</em>的认识也差不多就是这样。rnrn但是在学习LINUX<em>驱动</em>编写的时候,在编写的过程中好象没有跟设备的通信有关的语句,这是为什么呢?对于<em>一些</em>特殊的设备,那要怎么编呢?还有,在LINUX下是不是只有字符、块设备、网卡这三类<em>驱动</em>?rnrn由于小子是菜鸟,所以可能提的问题有些许可笑,望高人能够不吝赐教,再谢!
AT91RM9200的Linux下I2C总线驱动
主要是针对PCA9539等I2C总线IO扩展芯片,在Linux下实现<em>驱动</em>
linux下的I2C驱动记录(RK)
现在做的是RK平台的I2C<em>驱动</em>,不是说linux每个外设对应一个设备文件吗?可是找了一下一直没找到,今天特别搞了一下。I2C设备是注册为platform平台<em>驱动</em>的。 下面是我用adb命令查看的 linux的设备文件不一定只在dev/这个目录下面,像sys/ 目录下面也会有<em>一些</em>设备文件的 MID下面的I2C设备的设备文件 [cpp] view plaincop
Linux下I2C驱动分析(二)
昨天分析了一下I2C<em>驱动</em>的挂载过程,今天接着分析probe函数的调用,在网上看过很多probe函数的调用过程,基本上得出probe函数在<em>驱动</em>注册的结束阶段调用probe函数,也就是说probe函数在detect函数之前被调用,那为什么我把probe函数放在detect函数之后分析呢?原因在下面。 首先看一下I2C<em>驱动</em>结构体和I2C设备结构体(声明:为了简洁起见注释已被删除,不在重复声明) st
linux下I2C总线驱动架构分析
Linux系统中<em>i2c</em><em>驱动</em>分成三个部分:<em>i2c</em>-core,<em>i2c</em>-bus和<em>i2c</em>-dev。<em>i2c</em>核心是<em>i2c</em>总线<em>驱动</em>和<em>i2c</em>设备<em>驱动</em>的中间枢纽,它以通用的、与平台无关的接口实现了<em>i2c</em>中设备与适配器的沟通。<em>i2c</em>总线<em>驱动</em>填充<em>i2c</em>_adapter和<em>i2c</em>_algorithm结构体。<em>i2c</em>设备<em>驱动</em>填充<em>i2c</em>_driver和<em>i2c</em>_client结构体。<em>i2c</em>核心有操作系统实现,<em>i2c</em>设备<em>驱动</em>在以前的文档中已经详细介绍,本文档重点关注<em>i2c</em>总线<em>驱动</em>的实现。
Linux下I2C驱动分析(三)
分析了两天的I2C<em>驱动</em>,发现每次解决一个问题的时候都会带来新的问题,当大致读完MMA7660<em>驱动</em>程序的时候发现,作为一个字符设备I2C<em>驱动</em>,并不存在有open,close等接口,而我们知道,在Linux的世界里设备即文件,也就是操作设备就相当于读写文件,而在一个简单的字符设备里总会实现一个file_operation的结构体以实现用户层的调用,那么当我们打开一个I2C设备的时候open在哪里呢?
Linux下I2C驱动分析(一)
最近在做一个基于全志A33芯片的android移植时发现嵌入式设备很多都用到了I2C总线通信,比如说摄像头,G-sensor,触摸屏等,为此我觉得很好的理解I2C设备<em>驱动</em>在今后的嵌入式开发中是非常有好处的,而目前我也是处于学习阶段,便将这些学习的过程给记录下来,如果有存在的问题,还希望不吝指正。         我曾经用51单片机的IO口模拟I2C总线写过<em>驱动</em>,实现24C02存取数据还是非常简单
fl2440——Linux下I2C驱动体系
初学I2C的时候,因为第一次接触到这么一种<em>驱动</em>体系,与之前学习的普通字符设备<em>驱动</em>、platform<em>驱动</em>还是有<em>一些</em>区别的。在看内核的I2C有关源代码的时候确实感到不太能理清楚它的框架,还好网上的大神们分享的知识让我学到了很多。因此现在先对I2C有一个大致的学习,往后在做到相关的项目时再来加深、巩固。1、I2C基础知识1.1 概述IIC (也称I2C)即Inter-Integrated Circuit(
关于i2c疑问
刚接触<em>i2c</em>,项目要我实现<em>i2c</em>的通信,本来一直是按标准的来测试,但是没有成功,但是后来尝试了不标准的(蒙的),就是主机只发送一个从机地址,居然可以正确的读从机<em>i2c</em>的内容(0x00)而且可以连续顺序的读,主机是GPIO模拟的,主机和从机都有MCU,我想问一下,这到底是哪个不标准,主机or从机!
linux-I2C驱动(2)--linux下i2c驱动架构
I2c<em>驱动</em>架构: APP层:open、read、write ----------------------------------------------------------------------------------------------- <em>驱动</em>层: drv_open、drv_read、drv_write <em>i2c</em>设备<em>驱动</em> ------------...
求助:s3c6410 i2c驱动 i2c接收
小弟最近在做6410的项目rn现在要实现加密IC功能,但在使用加密IC的时候遇到读写不稳定的问题rn为排除其它意外的干扰,我接了个24C16对I2C进行测试。rn用示波器查看,测试结果如下:rn1.多字节写OK,都能正常使用rn2.多字节读不稳定,从示波器来看,写从器件地址(0xa0)/寄存器地址(0x0a,写入测试时使用的寄存器)OK,转为Master_receive mode,写从器件地址(0xa1)OK,并能接收到数据0xaa(之前写入到寄存器0x0a的数据),0xaa后跟着是低电平(ACK),但现在遇到的问题是SDA拉低(ACK)后就不再拉高了,SCL也一直保持低电平状态,整个I2C完全死掉了,RESET重启,I2C的SDA和SCL仍然保持低电平状态,直到关机再启动I2C才恢复正常。rnrn小弟使用的BSP是友坚0.34,之前由于板子上只有一个音频IC是I2C设备,并且这个IC是only write的,所以一直没有使用I2C读取的功能。
unix到linux下一些疑问
以前我在solaris下用的像mq_open()这些消息队列的系统调用怎么在linux(redgat7.0)都不见了啊? rnrn该怎么移植呢?rnrnrnrn
求助关于I2C驱动,第二次insmod出问题
我刚才编写了一个基于I2C总线的at24c02 <em>驱动</em>rn一切顺利调试,用测试程序测试 运行成功rnrn不过也问题出来了:rn当我rmmod 我的那个模块即命名为my<em>i2c</em>drvrn查看lsmod,那个模块除去了rn再查看cat /proc/devices 也除去了rnls /dev/my<em>i2c</em>drv 也除去了rnrnrn接着(不重启开发板),再来insmod 刚才那个模块,rnlsmod 有它,rn但再查看cat /proc/devices 没有它rn ls /dev/my<em>i2c</em>drv 没有它。rn用测试程序自然不成功rnrn我觉得好奇怪,平时写个<em>驱动</em>,可以重复insmod/rmmod都可以,为啥这次不行了,晕死了。rn看了代码 没问题,我在此贴出后面两个函数给大家看,希望高手,解决下,谢谢了~~rnrnstatic int my<em>i2c</em>drv_detach_client(struct <em>i2c</em>_client *client)rnrn unregister_chrdev(my<em>i2c</em>drv_major, "my<em>i2c</em>drv_dev");rn class_device_unregister(my<em>i2c</em>drv_class_dev);rn class_unregister(my<em>i2c</em>drv_class);rn return 0;rnrnrnstatic int __init my<em>i2c</em>drv_init(void)rnrn <em>i2c</em>_add_driver(&my_<em>i2c</em>_driver);rn return 0;rnrnstatic void __exit my<em>i2c</em>drv_exit(void)rnrn <em>i2c</em>_del_driver(&my_<em>i2c</em>_driver);rnrnmodule_init(my<em>i2c</em>drv_init);rnmodule_exit(my<em>i2c</em>drv_exit);rnrn
关于i2c驱动的问题
在linux2.6.28内核中的include/linux/<em>i2c</em>.h中有这样的一个结构体:struct <em>i2c</em>_client_address_data rn const unsigned short *normal_<em>i2c</em>;rn const unsigned short *probe;rn const unsigned short *ignore;rn const unsigned short * const *forces;rn;rnrn可是在内核2.6.38中没有了?问下38中是怎样处理<em>i2c</em>操作的?用什么来代替这个结构体了?
关于i2c驱动问题
同志们,<em>i2c</em>设备的地址是平台决定的,还是芯片自己决定的?我要移植个ov5648camera的<em>驱动</em>,前后用的都是ov5648(芯片一样,但不是同一个camera)。现在问题是单独装前或后都可以用,如果两个都装,就只能识别一个。两个用的<em>i2c</em>地址都是0x36,该如何修改呢?小弟积分不多,希望好心人解答小弟<em>疑问</em>。
关于2.6.32.4的i2c驱动
最近在写<em>i2c</em><em>驱动</em>读写at24c08,一个简单的<em>i2c</em><em>驱动</em>写出来了,但是不会写<em>i2c</em>适配器的<em>驱动</em>rn[code=c]#include rn#include rn#include rn#include rn#include rn#include rn#include rn#include rn#include rnrn/* Device registers */rn#define at24c08_REG_CONFIG 0x00rn#define at24c08_REG_ALARM 0x01rn#define at24c08_REG_ELAPSED 0x05rn#define at24c08_REG_EVT_CNTR 0x09rn#define at24c08_REG_EEPROM 0x0brn#define at24c08_REG_RESET 0x1drn#define at24c08_REG_WRITE_DISABLE 0x1ern#define at24c08_REG_WRITE_MEM_DISABLE 0x1frnrn#define at24c08_EEPROM_SIZE 10rnrn/*rn * Generic counter attributesrn */rnstatic ssize_t at24c08_show(struct device *dev, struct device_attribute *attr,rn char *buf)rnrn struct sensor_device_attribute_2 *sattr = to_sensor_dev_attr_2(attr);rn struct <em>i2c</em>_client *client = to_<em>i2c</em>_client(dev);rn __le32 val = 0;rn int rc;rnrn dev_dbg(dev, "at24c08_show() called on %s\n", attr->attr.name);rnrn /* Read the register */rn rc = <em>i2c</em>_smbus_read_<em>i2c</em>_block_data(client, sattr->index, sattr->nr,rn (u8 *) & val);rn if (rc < 0)rn return -EIO;rnrn /* Special case: the 32 bit regs are time values with 1/4srn * resolution, scale them up to milliseconds */rn if (sattr->nr == 4)rn return sprintf(buf, "%llu\n",rn ((unsigned long long)le32_to_cpu(val)) * 250);rnrn /* Format the output string and return # of bytes */rn return sprintf(buf, "%li\n", (long)le32_to_cpu(val));rnrnrnstatic ssize_t at24c08_store(struct device *dev, struct device_attribute *attr,rn const char *buf, size_t count)rnrn struct sensor_device_attribute_2 *sattr = to_sensor_dev_attr_2(attr);rn struct <em>i2c</em>_client *client = to_<em>i2c</em>_client(dev);rn char *endp;rn u64 val;rn __le32 val_le;rn int rc;rnrn dev_dbg(dev, "at24c08_store() called on %s\n", attr->attr.name);rnrn /* Decode input */rn val = simple_strtoull(buf, &endp, 0);rn if (buf == endp) rn dev_dbg(dev, "input string not a number\n");rn return -EINVAL;rn rnrn /* Special case: the 32 bit regs are time values with 1/4srn * resolution, scale input down to quarter-seconds */rn if (sattr->nr == 4)rn do_div(val, 250);rnrn /* write out the value */rn val_le = cpu_to_le32(val);rn rc = <em>i2c</em>_smbus_write_<em>i2c</em>_block_data(client, sattr->index, sattr->nr,rn (u8 *) & val_le);rn if (rc < 0) rn dev_err(dev, "register write failed; reg=0x%x, size=%i\n",rn sattr->index, sattr->nr);rn return -EIO;rn rnrn return count;rnrnrn/*rn * Simple register attributesrn */rnstatic SENSOR_DEVICE_ATTR_2(elapsed_time, S_IRUGO | S_IWUSR, at24c08_show,rn at24c08_store, 4, at24c08_REG_ELAPSED);rnstatic SENSOR_DEVICE_ATTR_2(alarm_time, S_IRUGO | S_IWUSR, at24c08_show,rn at24c08_store, 4, at24c08_REG_ALARM);rnstatic SENSOR_DEVICE_ATTR_2(event_count, S_IRUGO | S_IWUSR, at24c08_show,rn at24c08_store, 2, at24c08_REG_EVT_CNTR);rnrnstatic const struct attribute_group at24c08_group = rn .attrs = (struct attribute *[]) rn &sensor_dev_attr_elapsed_time.dev_attr.attr,rn &sensor_dev_attr_alarm_time.dev_attr.attr,rn &sensor_dev_attr_event_count.dev_attr.attr,rn NULL,rn ,rn;rnrn/*rn * User data attributern */rnstatic ssize_t at24c08_eeprom_read(struct kobject *kobj, struct bin_attribute *attr,rn char *buf, loff_t off, size_t count)rnrn struct <em>i2c</em>_client *client = kobj_to_<em>i2c</em>_client(kobj);rn int rc;rnrn dev_dbg(&client->dev, "at24c08_eeprom_read(p=%p, off=%lli, c=%zi)\n",rn buf, off, count);rnrn if (off >= at24c08_EEPROM_SIZE)rn return 0;rnrn if (off + count > at24c08_EEPROM_SIZE)rn count = at24c08_EEPROM_SIZE - off;rnrn rc = <em>i2c</em>_smbus_read_<em>i2c</em>_block_data(client, at24c08_REG_EEPROM + off,rn count, buf);rn if (rc < 0)rn return -EIO;rnrn return count;rnrnrnstatic ssize_t at24c08_eeprom_write(struct kobject *kobj, struct bin_attribute *attr,rn char *buf, loff_t off, size_t count)rnrn struct <em>i2c</em>_client *client = kobj_to_<em>i2c</em>_client(kobj);rnrn dev_dbg(&client->dev, "at24c08_eeprom_write(p=%p, off=%lli, c=%zi)\n",rn buf, off, count);rnrn if (off >= at24c08_EEPROM_SIZE)rn return -ENOSPC;rnrn if (off + count > at24c08_EEPROM_SIZE)rn count = at24c08_EEPROM_SIZE - off;rnrn /* Write out to the device */rn if (<em>i2c</em>_smbus_write_<em>i2c</em>_block_data(client, at24c08_REG_EEPROM + off,rn count, buf) < 0)rn return -EIO;rnrn return count;rnrnrnstatic struct bin_attribute at24c08_eeprom_attr = rn .attr = rn .name = "eeprom",rn .mode = S_IRUGO | S_IWUSR,rn ,rn .size = at24c08_EEPROM_SIZE,rn .read = at24c08_eeprom_read,rn .write = at24c08_eeprom_write,rn;rnrn/*rn * Called when a at24c08 device is matched with this driverrn */rnstatic int at24c08_probe(struct <em>i2c</em>_client *client,rn const struct <em>i2c</em>_device_id *id)rnrn int rc;rnrn if (!<em>i2c</em>_check_functionality(client->adapter,rn I2C_FUNC_SMBUS_I2C_BLOCK)) rn dev_err(&client->dev, "<em>i2c</em> bus does not support the at24c08\n");rn rc = -ENODEV;rn goto exit;rn rnrn rc = sysfs_create_group(&client->dev.kobj, &at24c08_group);rn if (rc)rn goto exit;rnrn rc = sysfs_create_bin_file(&client->dev.kobj, &at24c08_eeprom_attr);rn if (rc)rn goto exit_bin_attr;rnrn return 0;rnrn exit_bin_attr:rn sysfs_remove_group(&client->dev.kobj, &at24c08_group);rn exit:rn return rc;rnrnrnstatic int at24c08_remove(struct <em>i2c</em>_client *client)rnrn sysfs_remove_bin_file(&client->dev.kobj, &at24c08_eeprom_attr);rn sysfs_remove_group(&client->dev.kobj, &at24c08_group);rn return 0;rnrnrnstatic const struct <em>i2c</em>_device_id at24c08_id[] = rn "at24c08", 0 ,rn rn;rnMODULE_DEVICE_TABLE(<em>i2c</em>, at24c08_id);rnrnstatic struct <em>i2c</em>_driver at24c08_driver = rn .driver = rn .name = "at24c08",rn ,rn .probe = at24c08_probe,rn .remove = at24c08_remove,rn .id_table = at24c08_id,rn;rnrnstatic int __init at24c08_init(void)rnrn return <em>i2c</em>_add_driver(&at24c08_driver);rnrnrnstatic void __exit at24c08_exit(void)rnrn <em>i2c</em>_del_driver(&at24c08_driver);rnrnrnMODULE_AUTHOR("Grant Likely ");rnMODULE_DESCRIPTION("at24c08 Elapsed Time Indicator driver");rnMODULE_LICENSE("GPL");rnrnmodule_init(at24c08_init);rnmodule_exit(at24c08_exit);rn[/code]
Linux2.6的I2C键盘驱动求助
如题.我现在是 主芯片 通过I2C 连接到 触摸芯片.rn需要通过 轮询方式实现.rnrn而keyboard目录的I2C实现 都是基于中断的 . 如qt2160.c lm8323.c 等等 rnrn小白在线等大神给个框架
linux下关于中断的驱动. 求助求助
static int request_irqs(void)rnrnstruct key_info *k;rnint i;rnfor (i = 0; i < sizeof key_info_table / sizeof key_info_table[1]; i++)rn rn k = key_info_table + i;rn //set_external_irq(k->irq_no, EXT_BOTH_EDGES, GPIO_PULLUP_DIS);rn set_irq_type(k->irq_no, IRQT_BOTHEDGE);rn if (request_irq(k->irq_no, &buttons_irq, SA_INTERRUPT, DEVICE_NAME,i))rn rn //printk("irq request failed by %d \n");rn return -1;rn rnrn printk("irq request successfully!\n");rnreturn 0;rnrnrnstatic void free_irqs(void)rnrn struct key_info *k;rn int i;rn for (i = 0; i < sizeof key_info_table / sizeof key_info_table[1]; i++)rn rn k = key_info_table + i;rn free_irq(k->irq_no, buttons_irq);rn rnrnstatic int button_init(void)rnrn int ret,i;rn dev_t devno = MKDEV(button_major,0);rn ret = register_chrdev_region(devno, 1, "button");rn if(ret)rn return ret;rn button_p = kmalloc(sizeof(button_dev), GFP_KERNEL);rn if(!button_p)rn rn ret = -ENOMEM;rn goto fail;rn rnrnmemset(button_p, 0, sizeof(button_dev));rnrnbutton_setup(button_p, 0);rn for(i=0;icdev);rn kfree(button_p);rn unregister_chrdev_region(MKDEV(button_major,0), 1); rn free_irqs();rnrn上面是部分程序.rn问题是, 先insmod 这个模块, 执行正常, 然后rmmod 这个模块. 不重启, 再insmod 出错, rn提示是:rnbutton can't request irqsrninsmod: cannot insert './key.ko': Operation not permittedrnrn请教 是free_irq没有成功吗? 还是什么别的原因?rnrn另外 ,<em>关于</em>创建文件节点的问题, 以前移植过一个linux2.4的led<em>驱动</em>(无cdev结构), 在insmod之前要自己手动创建文件节点. 这次的<em>驱动</em>带了cdev结构, 所以不需要创建设备节点就能正常工作... 是因为有了cdev结构才不需要创建设备节点吗?rnrn多谢指教.
linux下一些疑问关于文件和设备
这个命令将CD-ROM设备(在开机引导时被加载为/dev/hdc)中的当前内容挂载为/mnt/cdrom目录下的文件结构。然后,你就可以像操作普通文件那样在CD-ROM的目录中漫游,只不过该目录中的内容是只读的。rn为什么一定要挂载呢,我觉得/dev/hdc也是文件,/mnt/cdrom也是文件,直接对/dev/hdc访问就可以,不清楚挂载的作用,请大侠解释下?rn例外:rn[quote]rn1./dev/consolernrn这个设备代表的是系统控制台。错误信息和诊断信息通常会被发送到这个设备。每个UNIX系统都会有一个指定的终端或显示屏用来接收控制台消息。过去,它可能是一台专用的打印终端。在现代的工作站和 Linux上,它通常是“活跃”的虚拟控制台;而在X窗口系统中,它会是屏幕上一个特殊的控制台窗口。rnrn2./dev/ttyrnrn如果一个进程有控制终端的话,那么特殊文件/dev/tty就是这个控制终端(键盘和显示屏,或键盘和窗口)的别名(逻辑设备)。例如,通过cron运行的进程就没有控制终端,所以它们不能打开/dev/tty。rnrn在能够使用该设备文件的情况下,/dev/tty允许程序直接向用户输出信息,而不管用户具体使用的是哪种类型的伪终端或硬件终端。在标准输出被重定向时,这一功能非常有用。命令ls –R | more就是一个这样的例子,more程序需要提示用户进行键盘操作之后才能显示下一页内容。我们将在第5章中看到更多使用/dev/tty的例子。rnrn注意,虽然/dev/console设备只有一个,但通过/dev/tty却能够访问许多不同的物理设备。rn[/quote]rn两者不太能理解和区别,好像都是控制终端,rn这句“通过/dev/tty却能够访问许多不同的物理设备。”又是什么意思?rnrnrn
i2c 疑问
<em>关于</em>地址:rnslaveaddr : 是从设备的地址,这个对于从设备是固定的? 是 or 不是rnwordaddr: 是不是从设备里面进行数据读写的地址?是 or 不是rnrn---rn rIICCON = RESUME_ACK; // resume operationrn#define RESUME_ACK 0xEF rn// clear interrupt pending bit, ACK enabled, div=512, IICCLK=PCLK/512rnrn#define RESUME_NO_ACK 0x6F rn// clear interrupt pending bit, ACK disabled, div=512, IICCLK=PCLK/512rnrn是不是在每次读写一个bytes数据之后,只要RESUME_ACK,就可以写入下一个数据,直到datacount=0rnrn后, RESUME_NO_ACK 就不可以写入
求助:vxbusrcmdline.c的一些疑问
C:\> cd installDir\vxworks-6.x\target\config\comps\src\hwif rnrnC:\> make vxbUsrCmdLine.c rnrn执行后,报错,然后将指令修改为:rnrnC:\> make CPU=ARMARCH5 TOOL=diabrnrn执行后rn出现很多如:cat:\vxworks-6.6\target\config\comps\src\hwif\***.dr :No such file or directoryrnrn并且生成的vxbUsrCmdLine.c文件基本上是空的 这是什麽原因呢?很是不解。。。。。望高手解答~谢谢~
linux下驱动求助
各位大侠们帮帮忙啊!我最近在看<em>linux下</em>的<em>驱动</em>,我的任务是编写串口<em>驱动</em>,是想开串口接收数据,用的是ARM11开发板。目的是使得开发板从串口接收另外一块板子的数据!开发板自带的资料中我也找到了<em>驱动</em>那块的代码,但是我还是有点不知道怎么下手,请大家多多帮忙!提点意见也好。
linux下编写I2C驱动与stm32通信(一)
最近项目中需要用到Hi3518e作为主芯片,上面搭载嵌入式linux系统。由于可行性验证阶段,没有做芯片级,而是先从系统级做起,用了一块已经移植好linux系统,带有网络文件系统服务的板子,该板子是专用于rtsp视频传输的,预留的引脚是在太少,只有两个用于IRCUT的引脚,而我们不仅仅需要rtsp服务,还需要在rtsp视频流中加入九轴陀螺仪的数据一起提供给上位机解析,只得再加一块stm32板子,用
linux下编写I2C驱动与stm32通信(二)
接上一篇,<em>linux下</em>GPIO模拟I2C<em>驱动</em>完成后,就是stm32的<em>i2c</em>配置了,由于hi3518e作为<em>i2c</em>的主设备,stm32则作为从设备,由于GPIO模拟<em>i2c</em>的从时序比模拟主时序要麻烦很多,所以采用stm32的硬件I2C。(stm32官网<em>i2c</em>例程主模式会莫名的卡死,从模式比较好用)      下载官网例程,将之设置为从模式,使用<em>i2c</em>2,将SCL,SDA,GND与hi3518e板子上G
I2C驱动
Linux2.6.30/driver/<em>i2c</em>/ 1.algos: 协议算法相关的东西 2.busses: 各种平台的<em>i2c</em>总线<em>驱动</em>(<em>i2c</em>控制器<em>驱动</em>/<em>i2c</em>适配器<em>驱动</em>) 3.chips: 各种<em>i2c</em>设备<em>驱动</em>(e2prom/某种传感器/触摸屏) 4.<em>i2c</em>-core.c <em>i2c</em>-dev.c: <em>i2c</em>子系统的通用文件(<em>i2c</em>核心层,提供<em>一些</em>通用函数接口) 应用层app
i2c驱动
<em>i2c</em>-at91.c at91_twi_probe() {     为对象开辟空间      初始化completion     获取地址资源     地址映射     获取中断资源     申请中断 atmel_twi_interrupt()     获取时钟使能时钟     计算频率     初始化各个寄存器     填充adapter结构体 at91_twi_al
i2c驱动--驱动框架
I2C<em>驱动</em>框架App :open 、read、 write<em>驱动</em>: drv_open 、drv_read 、drv_write :I2C设备<em>驱动</em>:包含数据含义 ——————————– I2C总线<em>驱动</em>程序:①识别 ② 提供读写函数:不知道数据含义硬件: AT24C02 At24C08I2c-s3c2410.c(linux-2.6.22.6\driv
关于eeprom i2c驱动代码
这个<em>i2c</em> <em>驱动</em>是使用是注册方式写的。自学者可以了解<em>一些</em>,先要在内核中的arch/arm/mach-xxx/mach-xxx 下的<em>i2c</em>_borad_info xxx datax 下主策<em>i2c</em>_client,之后就可以正常使用,记得修改从设备地址!!
关于i2c和spi总线驱动
<em>关于</em><em>i2c</em>和spi总线<em>驱动</em>,为了有更好的移植性,<em>驱动</em>采用了总线设备<em>驱动</em>模型。通过相关总线的核心层提供接口将<em>驱动</em>分为总线和设备两个层次。n总线层:如果<em>i2c</em>控制器,spi控制器和他们相应的<em>驱动</em>n设备层:采用协议的具体设备和他们相应的<em>驱动</em>n我的<em>疑问</em>就产生在总线层,如<em>i2c</em>,我写了它的控制器<em>驱动</em>也可以说是总线<em>驱动</em>,但是控制器实例化我没有做,它最后也成功的读写数据了。n而在spi中,我写了个它控制器的<em>驱动</em>也没有实例化控制器,但最后失败了。网上查资料说是要设置相关板文件,然后实验成功了。n我想知道模型是一样的,为什么一个要设置板文件一个不用设置,先在这里谢谢大家了n[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/13.gif][/img]
求助关于手机流媒体的一些疑问
我想实现类似GGTV一样的视频点播的功能,看了网上的很多<em>关于</em>流媒体开发的资料,主要有以下几点疑惑:rnrn1、流式传输分为HTTP流和实时流,看过目前J2ME能实现的是zhengyun写的用多线程轮流播放实现的HTTP流,用这种方法播放3GP文件,需要在服务器端将一个文件分为若干个小文件吗?(感觉应该不用吧)rn2、也看了mingjava给的用在索爱手机上写的实现RTSP的例子,那么手机支持或不支持RTSP协议是什么意思呢?如果说不支持,是指硬件上根本就不支持呢,还是说没有相关API,不支持用J2ME开发?比如我有N79或5800的机子,机子里自带的real播放器可以使用rtsp协议播放.rm或.3gp视频,在这样的机子上,可否用java实现边下载边播放.3gp文件?rn3、如果j2me没有相关API支持RTSP,那么可不可以调用本地real播放器来播放实时流?rn4、个人感觉GGTV做得还不错,不过它应该是用C/C++写的,它实现了HTTP流和RTSP流观看,用J2ME有没有可能自己写一个实现RTSP的播放器呢?rnrn望大牛们指教~~~~~~~~rn
[求助] 关于JOIN的的一些疑问 , 多谢大家了
ID已经建立了索引rnrn1.rn(1)rn CREATE VIEW dbo.VIEW_TEST rn AS SELECT DISTINCT rn A.a,B.b,C.c,D.d,E.ern FROM A,B,C,Drn WHERE A.ID = B.ID AND A.ID = C.ID AND A.ID = D.ID AND A.ID = E.IDrn AND (其他条件)rnrnrn(2)rn CREATE VIEW dbo.VIEW_TEST rn AS SELECT DISTINCT rn A.a,B.b,C.c,D.d,E.ern FROM A inner join B ON A.ID = B.ID rn inner join C ON A.ID = C.IDrn ......rn WHERE (其他条件)rn(3)rn CREATE VIEW dbo.VIEW_TEST rn AS SELECT DISTINCT rn A.a,B.b,C.c,D.d,E.ern FROM A left join B ON A.ID = B.ID rn left join C ON A.ID = C.IDrn ......rn WHERE (其他条件)rnrnrn假设ID已经建立了索引,left join不会产生NULL的记录(即和inner join结果一致)rnrn请问rn1.那种效率高呢? rn SELECT ..FROM ..WHERE A.ID = BB.ID AND ...好像是一种内连接吧,那(1)和(2)效率上有区别吗?rnrn2.三种情况都会先将ID相等的条件作用于每个表,然后再连接吗?rn3.三种情况都会先将 (其他条件) 作用于每个表,然后再连接吗?rnrn 如果不会先将(其他条件)作用于每个表的话rn 是不是rn 类似rn(4)rn CREATE VIEW dbo.VIEW_TEST rn AS SELECT DISTINCT rn A.a,B.b,C.c,D.d,E.ern FROM A inner join (SELECT * FROM B where (其他条件中的一部分) ) BB ON A.ID = BB.IDrnrn ....rnrn 这样先缩小结果集再连接比较好呢?rnrn 另外, 下边这种写法和上边都是一致的吧rn(5)rn CREATE VIEW dbo.VIEW_TEST rn AS SELECT DISTINCT rn A.a,B.b,C.c,D.d,E.ern FROM A inner join B ON A.ID = BB.ID AND (其他条件中的一部分) rn .....rnrn4 不考虑外连接产生的NULL数据,效率上是不是和内连接 每区别呢?rnrnrn5 进行表连接的时候,做这样的事情将A的结果集中的每条记录,和B结果集根据连接条件进行匹配,匹配则返回,如果那样的话,A,B,C,D,E的结果集一样的话,用以上那种方法,效率都是一样的,对吧rnrn6 如果A,B,C,D,E每张表都有几w条左右的记录,建立一个视图,rn ID已经建立了索引,(其他条件)缩小结果集的作用很小,rn 这个视图怎么建立比较好呢(只从效率上说)rnrn7 explain plan 一致,效率一定一致吗?rn rnrn
[求助]关于sys.dbms_scheduler.create_job的一些疑问 请解答
PROCEDURE create_any_job( rn vo_msg out varchar2rn)isrn vi_job_name varchar2(100) := 'update_ackind_t_act';rnbeginrnrn vo_msg := gc_ok;rn rn------------------定义JOB程序---------------------------rn sys.dbms_scheduler.create_program( ----创建程序rn program_name => 'any_program', ----定义程序名称rn program_type => 'STORED_PROCEDURE', ----定义程序类型为存储过程rn program_action => 'pkg_util.'||vi_job_name, ----指定义程序名rn number_of_arguments => 0, ----定义参数rn enabled => true ----随时激活程序rn ); rn rn-----------------定义作业---------------------------------rn sys.dbms_scheduler.create_job( ----创建作业 rn job_name => 'any_job', ----定义作业名称rn program_name => 'any_program', ----指向程序名称rn job_class => 'DEFAULT_JOB_CLASS', ----定义作业类rn enabled => true, ----随时激活rn auto_drop => true ----定义作业运行完毕自动删除作业rn ); rn rnexceptionrn when others then beginrn vo_msg := sqlerrm;rn end;rnend create_any_job; rnrn这是我写在一个包里的JOB,我没给时间计划,我的本意是用vi_job_name这个变量代表存储过程名字rn让用户直接执行JOB,不要起始时间,结束时间,执行频率。可以让用户随时随地的执行作业,无时间限制rn现在情况是运行JOB rnSELECT * FROM User_Scheduler_Jobs 这样可以看到any_job在运行。rn但是rnselect * from user_SCHEDULER_JOB_RUN_DETAILS where job_name='ANY_JOB' 查看详细日志却没有日志rn这是什么现象?rn如果我哪没表达清楚,告诉我一下,我在下楼里补充。rn
50分求助!!关于状态栏的一些疑问。。。
本人想完成一鼠标跟踪程序,就是在状态栏显示屏幕中的坐标rn主要的几个类有:CMouseView,CMouseAPP,CMainFrame,CMouseDocrn可是总是出错的,说什么状态栏参数不对,主要的OnMouseMove()函数已经完成的,已经添加到CMouseView类中,这是它的代码:rnstatic char output[20];rnCMainFrame *pFrame=(CMainFrame*)(AfxGetApp()->m_pMainWnd);rnCStatusBar *pStatus=pFrame->m_wndStatusBar;rnrnif(pStatus)rnrn sprintf(output,"(%d,%d)",point.x,point.y);rn pStatus->SetpaneText(output);rnrn上边的代码没问题吧??rn(MainFrm.h中的CStatusBar类已经被改为public了。)rn如果对的话,请大家告诉我在哪里设置状态栏参数??怎么设置呢??
i2c驱动--i2c总线接口
<em>i2c</em>总线协议<em>i2c</em>总线的物理结构:通过控制SCL(串行时钟线)和SDA(串行数据线)高低电平时序,进行数据的传输。总线空闲状态,上拉电阻拉高SCL和SDA,保持高电平。<em>i2c</em>总线上的设备既可以作为主设备,也可以作为从设备。每一个设备都会对应一个唯一的地址,主从设备之间就通过这个地址来确定与哪个器件进行通信。<em>i2c</em>总线信号类型:开始信号(s):SCL为高电平,SDA由高电平向低电平跳变。 结束信号
关于linux下strace疑问
[root@localhost ~]# strace -c -p 3277rnProcess 3277 attached - interrupt to quitrnProcess 3277 detachedrn[root@localhost ~]#rnrn如上,3277为进程ID,为查看不打调用花费的时间信息了呢,有知道的吗 谢谢
关于linux下的磁盘阵列疑问!!
各位大虾,再<em>linux下</em>面怎么做磁盘阵列啊??rnrn快顶顶啊, 郁闷中………………………………………………rnrnrn指点指点rn…………………………………………
关于linux下USB驱动疑问
刚刚看了<em>一些</em>USB的知识有几点<em>疑问</em>:rn1在USB设备<em>驱动</em>,USBcore USB主机控制器<em>驱动</em>中 ,真正处理在物理层传输的是HCD吗(就是什么第一次发一个什么包 再发一个什么包)rn2枚举是在哪一层次完成的
关于Linux下SO_REUSEADDR的疑问
如下演示程序,程序目的是:rn先准备好一个ServerSocket,监听端口8880,rn然后建一个ClientSocket(受限于业务需要,必须在ServerSocket准备好后再建Client),也必须绑定同一端口8880,rnrn问题是:为什么对ClientSocket bind(port 8880)时,会报错EADDRINUSE?我已经启用了SO_REUSEADDR。rnrn为了方便于大家试运行,我把代码简化的没有其他库依赖,只需g++ -o demo demo.cpp即可运行。rnrn[code=C/C++]rn//demo.cpprn#include rn#include rn#include rn#include rn#include rn#include rnrnint SockDemo()rnrn sockaddr_in in;rn memset(&in,'\0',sizeof(in));rn in.sin_family=AF_INET;rn in.sin_port=htons(8880);rn in.sin_addr.s_addr=INADDR_ANY;rn rn int reuse0=1;rn int serv=socket(AF_INET, SOCK_STREAM, 0);rn if (setsockopt(serv, SOL_SOCKET, SO_REUSEADDR, (char *)&reuse0, sizeof(reuse0))==-1) return errno;rn if (bind(serv, (sockaddr*)&in, sizeof(sockaddr)) == -1) return errno;rn if (listen(serv, SOMAXCONN)==-1) return errno;rn rn int reuse1=1;rn int client=socket(AF_INET, SOCK_STREAM, 0);rn if (setsockopt(client, SOL_SOCKET, SO_REUSEADDR, (char *)&reuse1, sizeof(reuse1))==-1) return errno;rnrn if (bind(client, (sockaddr*)&in, sizeof(sockaddr)) == -1) return errno;rn //****** 此处为报错 *****:errno=98, Address already in use.rnrn sleep(1);rn rn close(client);rn close(serv);rn return 0;rn rnrnrnint main(int argc, char *argv[])rnrn int errcode=SockDemo();rn printf("errno=%d, %s.\n", errcode, strerror(errcode));rn return 0;rnrn[/code]
求助Linux下关于s3c2410驱动的问题
最近正在学习基于2410的开发,对于s3c2410.h头文件中,操作GPIO口的有两个函数不大明白:rn1。set_gpio_ctrl(x) rn2。write_gpio_bit(x, v)rn他们的定义分别如下:rn#define set_gpio_ctrl(x) \rn ( GPCON(GRAB_PORT((x))) &= ~(0x3 << (GRAB_OFS((x))*2)); \rn GPCON(GRAB_PORT(x)) |= (GRAB_MODE(x) << (GRAB_OFS((x))*2)); \rn GPUP(GRAB_PORT((x))) &= ~(1 << GRAB_OFS((x))); \rn GPUP(GRAB_PORT((x))) |= (GRAB_PULLUP((x)) << GRAB_OFS((x))); )rn#define write_gpio_bit(x, v) \rn ( GPDAT(GRAB_PORT((x))) &= ~(0x1 << GRAB_OFS((x))); \rn GPDAT(GRAB_PORT((x))) |= ((v) << GRAB_OFS((x))); )rn看了半天还是没大搞明白,能否给讲一下这两个函数大概实现什么功能,参数什么意思,谢谢!
关于串口驱动的的疑问
static int __init s3c2440_serial_init(void) rn //初始化模块 ,注册平台<em>驱动</em> rn return s3c24xx_serial_init(&s3c2440_serial_driver, &s3c2440_uart_inf); rn rn这里内核源码中的串口<em>驱动</em>的模块初始化函数,这里只注册了平台<em>驱动</em>,为什么没有注册平台设备
关于结构体的一些疑问
新手<em>求助</em>,先看一段简化代码rn[code=c]rn// Define exceptionsrnstruct HTK_Error rn int i;rn HTK_Error(int ii) i = ii; rn;rnrnint main()rn tryrn if(pt == NULL) throw HTK_Error(10999);rn return 0;rn rn catch (HTK_Error e) ReportErrors("HTK",e.i); return 0;rn[/code]rnrn我的问题是上面的HTK_Error结构体为什么要定义成这样?以前没见过结构体的这种用法,它的作用是什么?rn是不是为了让throw HTK_Error(10999);这句可以直接给i赋值?
关于jar包的一些疑问
由于每个项目中都有系统管理这个模块,所以最近想把公司的系统管理单独做成一个小项目,然后想把这个项目打成jar包,在做业务项目时,再把jar包导入,使系统管理着一块直接能用,思路是这样的,但是不知道这样行不行,并且即使打成了jar包,也还有很多<em>疑问</em>,如下:rn项目使用的框架:struts1.2+spring2.0+jdbcrn1.如果将系统管理做成一个小项目,打成jar包,那么我的jsp文件和js文件也得打成jar包,jsp文件和js文件打到jar包中可以吗?rn2.当在业务项目中导入打的系统管理的jar包后,如何使用这个jar包,怎么才能在业务项目中使用系统管理的功能?rnrnrn我们现在的做法是把系统管理的包名做的和业务项目区分,在开始新项目后就把系统管理的那一套copy进新项目中,各位大哥有没有更好的思路和解决方案,指点下,谢谢!rnrnrn另外,熟悉使用自己jar包的大哥也给指点下自己打的jar如何使用(指在项目中),谢谢!
关于ServerSocket的一些疑问
一个是客户端,一个是服务端,我在我的eclipse上调试怎么总提示错误呢?我是win7系统,小白先谢谢大家帮忙解围啦。rnrnrn客户端:rnrn[code=Java]rnimport java.awt.*;rnimport java.awt.event.*;rnimport java.io.IOException;rnimport java.net.*;rnrnrnpublic class ChatClient extends Frame rnrn TextField tfTxt = new TextField();rn TextArea taContent = new TextArea();rnrn public static void main(String[] args) rn new ChatClient().launchFrame();rn rnrn public void launchFrame() rn setLocation(400, 300);rn this.setSize(300, 300);rn add(tfTxt, BorderLayout.SOUTH);rn add(taContent, BorderLayout.NORTH);rn pack();rn this.addWindowListener(new WindowAdapter()rn public void windowClosing(WindowEvent e) rn System.exit(0);rn rn );rn tfTxt.addActionListener(new TFListener());rn setVisible(true);rn connect();rn rn rn public void connect()rn try rn Socket s = new Socket("localhost",1069);rnSystem.out.print("connected!"); rn catch (UnknownHostException e) rn e.printStackTrace();rn catch (IOException e) rn e.printStackTrace();rn rn rn rnrn private class TFListener implements ActionListenerrnrn public void actionPerformed(ActionEvent e) rn String s = tfTxt.getText().trim();rn taContent.setText(s);rn tfTxt.setText("");rn rn rn rnrnrn[/code]rnrnrn下面这个是服务端:rnrn[code=Java]rnimport java.io.*;rnimport java.net.*;rnrnpublic class ChatServer rnrn public static void main(String[] args) rn try rn ServerSocket ss = new ServerSocket(1069);rn while(true)rn Socket s = ss.accept();rnSystem.out.println("a client connected!");rn rn catch (IOException e) rn e.printStackTrace();rn rn rnrnrn[/code]rnrnrn提示错误:rnjava.net.SocketException: select failedrn at java.net.PlainSocketImpl.socketAccept(Native Method)rn at java.net.PlainSocketImpl.accept(Unknown Source)rn at java.net.ServerSocket.implAccept(Unknown Source)rn at java.net.ServerSocket.accept(Unknown Source)rn at ChatServer.main(ChatServer.java:10)rnrnrn我的是eclipse Version: 3.7.2 rnrn
关于define的一些疑问
最近看数据结构的书,有段代码用来测试heap(binary heap)的正确性,片段如下rnwhile( !IsEmpty( H ) )rn if( DeleteMin( H ) != j++ )rn printf( "Error in DeleteMin, %d\n", j );rnprintf( "Done...\n" );rn其中DeleteMin的原型是 int DeleteMin(struct *TreeNode)。rn现在的问题是我需要实现实现另一个heap(leftist heap),但是有必须保持和前面实现的接口的一致,需要用struct TreeNode *DeleteMin1(struct TreeNode * H)和int FindMin(struct TreeNode * H)两个函数通过宏的形式包装成DeleteMin,自己写了两种方式:rnrn1. #define DeleteMin( X, H) (X = FindMin(H), H = DeleteMin1(H), X),但是这种方式和原型还是有不同的地方。rnrn2. #define DeleteMin(H) (X = FindMin(H), H = DeleteMin1(H), X),这种方式需要在函数使用的地方声明X,所以想到在头文件中声明static int X,但是在头文件中定义是不好的编程习惯,有一定危险性。rnrn请问大伙有没有更好的方式来包装DeleteMin啊?
关于for语句的一些疑问
我有一个以下结构的程序 rnint x;rnswitch(a)rnrncase 1:rn for(x=0; x<10; x++)rn rn ........rn rncase 2:rn ..........rnrnrn我的问题是 调试的时候上面x的值为乱值2万多 但是还进到for语句中执行了 而且里面有的算式结果也是正确的 请问为什么调试的时候显示会是乱的值呢 我看了地址中第一次执行也不是0
关于vector的一些疑问
#include "stdafx.h"rn#includern#includern#includernusing namespace std;rnclass studentrnpublic:rn student();rn ~student()rn friend ostream&operator<<>ID;rn cout<>Name;rn cout<>Score;rnrnostream&operator<<< a;rn vector::iterator is=a.begin();rn int choice;rn vector::size_type place;rn dorn cout<<>choice;rn switch(choice)rn rn case 0:cout<<<>place;rn a.insert(is+place,c);/:2:就算把b,c的声明放在switch语句前,insert函数还是会导致崩溃rn cout<<>place;rn a.erase(is+place);rn cout<<;rn break;rn rn rn while(choice);rn return 0;rn问题:1,2在主函数的注释部分!rn问题3:VS2010中的int _tmain(int argc, _TCHAR* argv[]) 是否和int main()return 0;基本相同,有没有不同的地方
关于单例模式的一些疑问
看到一管<em>关于</em>单例模式的文章,感觉写的相当不错,链接:[url=http://www.cnblogs.com/xun126/archive/2011/03/09/1970807.html]http://www.cnblogs.com/xun126/archive/2011/03/09/1970807.html[/url]rnrn其最后一段“饿汉模式”的代码如下:rn[code=csharp]rn public sealed class Singletonrn rn private static readonly Singleton instance = new Singleton();rnrn private Singleton()rn rn rnrn public static Singleton GetInstance()rn rn return instance;rn rn rn[/code]rnrn原文中提到:rn“readonly关键字可以跟static一起使用,用于指定该常量是类别级的,它的初始化交由静态构造函数实现,并可以在运行时编译。在这种模式下,无需自己解决线程安全性问题,CLR会给我们解决。由此可以看到这个类被加载时,会自动实例化这个类,而不用在第一次调用GetInstance()后才实例化出唯一的单例对象。”rnrn现在的问题是如果去掉readonly单例模式还能不能正常使用?如果能正常使用,跟加readonly的模式有何区别?
关于联合主键的一些疑问
rnMysql在执行查询时总是先试图扫描索引,但是LZ并不了解索引的具体存储结构。rn比如联合主键的数据结构,有如下脚本:rnrnUSE test;rnrnCREATE TABLE `t_string_resource` (rn `STR_ID` varchar(90) COLLATE utf8_bin NOT NULL,rn `LANG_ID` varchar(9) COLLATE utf8_bin NOT NULL,rn `STR_DATA` varchar(3072) COLLATE utf8_bin DEFAULT NULL,rn `ORG_TABLE` varchar(50) COLLATE utf8_bin DEFAULT NULL,rn `UPDATE_TIME` datetime DEFAULT '1900-01-01 00:00:00',rn PRIMARY KEY (`STR_ID`,`LANG_ID`),rn KEY `IDX_STRING_RESOURCE__ORG_TABLE` (`ORG_TABLE`)rn) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;rnrnInit:rnINSERT INTO `t_string_resource` (`STR_ID`, `LANG_ID`, `STR_DATA`, `ORG_TABLE`, `UPDATE_TIME`) VALUES ('MSG_001', '011', 'testing', 'T_MESSAGE', '2013-01-21 13:42:59');rnINSERT INTO `t_string_resource` (`STR_ID`, `LANG_ID`, `STR_DATA`, `ORG_TABLE`, `UPDATE_TIME`) VALUES ('MSG_1', '011', 'Address 1', 'T_MESSAGE', '2013-01-21 17:11:51');rnINSERT INTO `t_string_resource` (`STR_ID`, `LANG_ID`, `STR_DATA`, `ORG_TABLE`, `UPDATE_TIME`) VALUES ('MSG_1', '211', '地址 1', 'T_MESSAGE', '2013-01-21 17:11:51');rnINSERT INTO `t_string_resource` (`STR_ID`, `LANG_ID`, `STR_DATA`, `ORG_TABLE`, `UPDATE_TIME`) VALUES ('MSG_100242', '011', 'Submit', 'T_MESSAGE', '2013-01-21 13:42:59');rnINSERT INTO `t_string_resource` (`STR_ID`, `LANG_ID`, `STR_DATA`, `ORG_TABLE`, `UPDATE_TIME`) VALUES ('MSG_100242', '211', '提交', 'T_MESSAGE', '2013-01-21 13:42:59');rnINSERT INTO `t_string_resource` (`STR_ID`, `LANG_ID`, `STR_DATA`, `ORG_TABLE`, `UPDATE_TIME`) VALUES ('MSG_100244', '011', 'Submit', 'T_MESSAGE', '2013-01-21 13:42:59');rnINSERT INTO `t_string_resource` (`STR_ID`, `LANG_ID`, `STR_DATA`, `ORG_TABLE`, `UPDATE_TIME`) VALUES ('MSG_100244', '012', 'Freigabe', 'T_MESSAGE', '2013-01-21 13:42:59');rnINSERT INTO `t_string_resource` (`STR_ID`, `LANG_ID`, `STR_DATA`, `ORG_TABLE`, `UPDATE_TIME`) VALUES ('MSG_100244', '211', '提交', 'T_MESSAGE', '2013-01-21 13:42:59');rnINSERT INTO `t_string_resource` (`STR_ID`, `LANG_ID`, `STR_DATA`, `ORG_TABLE`, `UPDATE_TIME`) VALUES ('MSG_100322', '011', 'Search', 'T_MESSAGE', '2013-01-21 13:42:59');rnINSERT INTO `t_string_resource` (`STR_ID`, `LANG_ID`, `STR_DATA`, `ORG_TABLE`, `UPDATE_TIME`) VALUES ('MSG_100322', '211', '查询', 'T_MESSAGE', '2013-01-21 13:42:59');rnrnAction:rnreplace into t_string_resource values ('MSG_1','011','Address 2','T_MESSAGE','2013-01-21 13:42:59');rnrnResult:rn-- Query OK, 2 rows affected (0.05 sec)rnrnLZ期望的结果是1rows affected.理由如下,当执行插入操作时,先依据联合主键扫描索引,若查到,则删除记录,并插入给定值。若查不到,则插入给定值。所以,LZ认为至多只有1列被影响。但是结果集返回的提示是2列被影响。这里,我将联合主键,作为一个独立的索引来考虑的。rnrnrn以上,求扫盲,求指导。rnrnrnrn
关于JavaBean的一些疑问
话说所有的java类都有一个默认的构造方法,但是为什么javabean还要写一个无参的构造方法呢,请大神们解释下啊
关于触发器的一些疑问
有两个应用,后台数据库都是一个,只是用户不同rn现在想实现这样的操作:rn当应用一的A表插入新数据或者数据发生变化时就会在应用二的B表插入、更新数据并且还关联其它的<em>一些</em>表做UPDATE操作。rn所以在应用一的A表加上触发器可以实现以上的操作,但是感觉效率降低明显。rn毕竟A表属于应用一,为了更新应用二的B表牺牲了应用一的效率,这个方案不是很好。rn请问如果使用存储过程,是不是只有在涉及到A表变更的代码当中逐一地调用存储过程?当然这样的工作量也就增加了。rn各位高手还有没有什么好的建议方案??rnrn
关于QQ的一些疑问
QQ的消息提醒好像是腾讯服务器主动发消息过来响应客户端的,这是啥类型的链接?咋实现呢?rnrn谢谢...
关于模板函数的一些疑问
#includerntemplaternvoid fun()rnrn cout<; //正常rn pfun(); //输出10;rn void (*pfun1)() = fun; //此行编译出错rn pfun1();rnrn return 0;rnrnrn请问各位大侠,能否告诉出错的原因,谢谢!rn另外还有个问题:rn 如果将void (*pfun)() = fun;改成以下两行:rn void (*pfun)();rn pfun = fun;rn这样编译也不能通过,说形参表不匹配,但如果是非模板函数,这样是允许的,不知为何?rnrnrn
关于预编译的一些疑问~~
#ifdef _DEBUG rn#define new DEBUG_NEW rn#undef THIS_FILE rnstatic char THIS_FILE[] = __FILE__; rn#endif rnrn请问怎么解释?
关于Timer的一些疑问
[code=C#]rn static int i = 0;rnrn private void timer1_Tick(object sender, EventArgs e) //(3处)rn rn if (i < 10)rn rn i++;rn label1.Text = i.ToString(); rn rn elsern rn timer1.enable=false;rn rn rnrn private void Form1_Load(object sender, EventArgs e)rn rn timer1.Interval = 1000;rn timer1.Tick+=new EventHandler(timer1_Tick);rn timer1.Start(); // (1处)rnrn label2.Text = "a"; //(2处)rn rn[/code]rnrn问题:rn1.为什么程序在执行的时候,不是停在1处执行,直到timer1.enable=false时,才转到2处.而实现时发现顺序是:1处2处3处执行,我想象应该是1处3处2处rn2.由于上面的问题,所以我想问,用timer能否实现让程序暂停在那个位置而不往后执行.除了用thread.sleep()外;rnrn请高手指点,谢谢!
关于BitmapReader的一些疑问
初学MFC,要做个BitmapReader,主要是调用Bitmap类来实现。rn但打开一个图片后,想要打开另个图片,页面没有跳转,请问需要什么调用什么函数呢。rn我的想法是,先关闭那个图片,可是菜单上的关闭按键好像没实现函数的,望解答。rn谢谢
关于SCJP的一些疑问
就要找工作了,所以想考一个认证,不知道scjp怎么样,有了它会不会好些,另外也想请考过的朋友指点一下,我不想参加什么培训班,还想一次通过,毕竟1250元不是什么小数目;rn大家对CCNA的看法怎么样?
关于select的一些疑问
这几天在学到了select模式,有点<em>疑问</em>rn我本来学的是<em>linux下</em>的网络编程,它是将select函数用在了客户端那个程序中,rn由于看得不是很懂,所以对照了一下windows下的网络编程看了下,问了一位实验室里rn搞网络编程的师兄,师兄说select在windows编程中都是用在服务器程序上的,我看了下,rnrn确实是这样的,windows下的程序倒是看懂了,再回过头来看<em>linux下</em>的,发现它将selectrn安排rn在客户端似乎不太对rn有哪位牛人可以帮小弟大致上说下select在linux的流程阿!
关于反汇编的一些疑问
杀毒软件厂商一天恐怕要处理不下几万个病毒样本,听说是用反汇编的方法看有没有恶意代码。请问这是真的吗?那么又是用什么工具呢?如此高的效率不会是一行一行看反汇编代码吧。
关于定位的一些疑问
先使用的百度的定位,但是ios和Android的定位偏差比较大,开始是10米之内,之后误差有几十米; 于是说服Android准备更换高德地图,然后就一起测试,Android在高德地图开放平台注册并集成sdk,ios使用系统集成地图定位,发现两者还是有误差,而且很大,研究发现正好是一个火星定位算法的差距,ios转换后得到经纬度就和安卓定位到的非常接近,计算距离误差1米,但是另一个问题出现了,ios
关于原型对象的一些疑问
var oo = ;rnObject.prototype.isPrototypeOf(oo);rnoo.constructor == ObjectrnrnFunction.prototype.isPrototypeOf(Object);rnObject.constructor == Functionrnrn这几句话究竟是什么意思啊,rnObject.prototype 不是null吗,哪里来的他可以调用isPrototypeOfrnrn如果说前三句要是非理解,也能参透了一二rn后两句真是奇怪了,怎么Function和Object同为js内部对象,还能有谁构造谁一说,rnrn真是不太懂,希望高人就着前三句和后两句分别指点一二,,,rnrn小生多谢了
关于同步传输的一些疑问
1 同步传输与异步传输的区别(我只是想知道。1是效率和。2是接受。和发送数据的是否精确)rnrnrn2 自定义数据包的时候。发送<em>一些</em>数据。。过于频繁。。会造成。接收端丢失<em>一些</em>数据(rn有朋友告诉我,要自定义数据包,当然他告诉我的是要有这个数据包的长度和。校验码之类的)rn我看了网络编程<em>关于</em>TCP数据包的结构。。发现。TCP数据包的结构比较多,但是高手在编程的时候。rn也没有一个一个赋值啊。。就是不知道。他们是如何。发送。接受。也没有造成数据丢失。。我真的想知道rnrnrn3 我想知道。什么模型比较好。(目前,主流开发。)我努力学习性能比较好的模型。。以后编程的时候。我就套用这个模型。。rnrnrnrn
关于敏捷的一些疑问
1. 在项目的周期、金额固定的情况下,是否适用敏捷开发,如果用户的持续提出需求变更,敏捷虽然可以随时应对,但是如何避免项目周期无限延伸呢?如何约束双方的合同范围?r 2. <em>一些</em>项目,有监理方,他们按照国家相关规范要求文档的话,要求提供详细的需求规格,概设详设等文档。特别是<em>一些</em>国企、政府项目。用户故事只是记录不是文档,那什么才是提交用户的文档?r 3. 敏捷故事与用例、界面原型、数据规范之间是什么关系?“用户输入用户名密码登陆系统”这个用户故事,与“用户名只能是3-20位的英文字符和数字”这样的约束,如何进行统一?r 4. 敏捷包括敏捷项目管理、敏捷需求、敏捷开发,这些是否要同步进行才能开始敏捷之旅?如一个团队以往连Ant 和Junit都没用过,如何开始尝试敏捷呢?如果一个开发经理+1个需求+3个开发+1测试 这样的小型团队希望转型成为一个敏捷团队,需要付出多少成本(时间、条件、金钱)?r
关于 output_buffering 一些疑问
我在网上看到 这么篇文件rn[url=http://www.cnblogs.com/zemliu/archive/2012/05/11/2495293.html]http://www.cnblogs.com/zemliu/archive/2012/05/11/2495293.html[/url]rnrn上面说rnPHP的输出顺序rnrn1.打开了php输出缓存: echo,print -> php output_buffring -> server buffering -> browser buffering -> browser displayrnrn2.未打开php输出缓存: echo,print -> server buffering -> browser buffering -> browser displayrnrn这个是对的吗?????rnrnrn还有rnob_flush()函数: 取出PHP buffering中的数据,放入server bufferingrnflush()函数: 取出Server buffering的数据,放入browser bufferingrnrn所以要强制把缓冲区的东西输出的时候,先写ob_flush() 在写 flush()rn是这样吗
关于fork函数的一些疑问
[code=c]#includern#includern#includernrnrnint main(int argc,char* argv[])rnrn printf("before fork~\n");rn if(fork() < 0)rn rn printf("error\n");rn rn else if(fork() > 0)rn rn printf("this is parent~\n");rn int stat;rn pid_t t=wait(&stat);rn if(WIFEXITED(stat))rn printf("正常终止~\n");rn rn elsern rn printf("this is children~\n"); rn sleep(9);rn rn return 0;rn[/code]rn问题在于,[img=https://img-bbs.csdn.net/upload/201410/14/1413274009_159172.png][/img]rn为什么输出会是这个样子?printf会输出两次?而且如果我只更改if else之间的顺序之后,按理不是父进程调用wait,而子进程sleep,会导致父进程被阻塞么,可是那样子不会被阻塞,但是printf倒会是正常的。。。请问大家这是怎么回事
关于@RequestMapping的一些疑问
小白一枚,求指教rnrn公司让学习一款开发平台,基于SpringMVCrnrnrn@RequestMapping("$admin.url.prefix/sys/user")rn@RequiresPathPermission("sys:user") rn像这样类似的注解有很多,都在Controller层里rn不明白 $admin.url.prefix] 是什么意思rn看起来像是个EL表达式rnrn
关于实例化的一些疑问
1 使用import一个包以后,为什么这个包中的类的方法不用实例化就能在这个类中使用rnrn2 在同一个类中,写出几个方法,能否其中一个方法调用其他方法。如果能,为什么不用实例化rn
一些关于嵌入式系统的疑问
嵌入式系统也是一套完整的系统,假设和PC做个对比,相应于PC的内存这一功能的部分在嵌入式系统中是啥?硬盘又相应于是啥?我的意思是他执行程序时数据放在哪里的?
关于引力波的一些疑问
<em>关于</em>引力波的<em>一些</em><em>疑问</em>     红朝儒生 2016-2-14   关键字:引力波 引力子 简介:引力波跟引力子,是什么关系?如何传递的?       最近,引力波成为最热闹的话题。探测到引力波当然是好事。实际上,探测到引力波之后,人们的<em>疑问</em>是增多了,而不是减少了。比如,吾就更糊涂了。   E8李群和弦论都认为,引力是通过自旋为2的光子传递的。那么,引力波跟引力子是什么关系?电磁...
关于JB的一些疑问
JB可不可以单独运行一个文件,还是说一定要建立一个project,然后再建立一个class,然后加入代码才能运行?rn比方说,我以前用记事本编了一个程序,用JDK运行通过,如果这时候我打开JB,从file中选择open file然后选择这个原文件并打开它,然后点击运行,为什么会跳出对话框,然后说mian方法异常。rn请问这是为什么?rn如果可以单独运行一个已存在的文件的话,具体操作应该是怎样的?rn希望哪位高手能够给予解答。谢谢
关于CORBA的一些疑问
最近看了<em>一些</em><em>关于</em>CORBA的书,由于没有实践经验,有些不明白。希望有经验的指点rn迷津。rnrncorba需要对idl进行map,如c++ map,将idl的数据类型都封装成了corba类型,这样做rn的目的是什么,corba类型到本地编译器的映射有谁完成?如果是编译器的话,那么rn是不是每种orb都有自己的映射头文件?corba类型是不是有自己的确切定义,如intrn为4个字节?rnrn对于corba的跨平台,对于不同的硬件体系对数据类型有不同的定义,rn例如 A 的bool是一个字节, B的bool是4个字节,而B中服务器有一个方法的rn参数是一个bool,这个转换如何完成呢?rn
关于Biztalk的一些疑问
公司想用Biztalk作为产品的流程平台,不过现在对biztalk不了解。有些问题想问各位大侠:rn 1.biztalk server 是不是必须和sqlserver数据库绑定?还是可以用别的数据库,如Oracle?rn 2.biztalk 能不能让用户定制流程?rn 3.在流程定制中,能不能实现某个环节就操作某几个信息这样的功能?rn 4.有没有类似会签的功能,也就是一个环节需要几个人同时审核,然后才能流到下一环节。
关于AJAX 的一些疑问
AJAX的应用范围方面有多广?rn 如果拿它和Hibernate 和SPRING来比较 rn他们哪个 应用范围更广?rn就工作而言 学习哪个更容易找到工作啊?rn
关于HashSet的一些疑问
最近使用HashSet时,才知道对于HashSet的类我一点也不了解。 HashSet 是不可以有重复元素的,那调用add()方法时,它的内部是怎么判断这个对象是否在该HashSet中存在的呢? 比如:rnrn 请大家指点!
关于重载运算符->*的一些疑问
先看一个重载该运算符的例子:rn(copy from TICPP)rn#include rnusing namespace std;rnrnclass Dog rnpublic:rn int run(int i) const rn cout << "run\n"; rn return i; rn rn int eat(int i) const rn cout << "eat\n"; rn return i; rn rn int sleep(int i) const rn cout << "ZZZ\n"; rn return i; rn rn typedef int (Dog::*PMF)(int) const;rn // operator->* must return an object rn // that has an operator():rn class FunctionObject rn Dog* ptr;rn PMF pmem;rn public:rn // Save the object pointer and member pointerrn FunctionObject(Dog* wp, PMF pmf) rn : ptr(wp), pmem(pmf) rn cout << "FunctionObject constructor\n";rn rn // Make the call using the object pointerrn // and member pointerrn int operator()(int i) const rn cout << "FunctionObject::operator()\n";rn return (ptr->*pmem)(i); // Make the callrn rn ;rn FunctionObject operator->*(PMF pmf) rn cout << "operator->*" << endl;rn return FunctionObject(this, pmf);rn rn;rn rnint main() rn Dog w;rn Dog::PMF pmf = &Dog::run;rn cout << (w->*pmf)(1) << endl;rn pmf = &Dog::sleep;rn cout << (w->*pmf)(2) << endl;rn pmf = &Dog::eat;rn cout << (w->*pmf)(3) << endl;rn ///:~rnrnDog类重载了->*运算符,但是实际使用(w->*pmf)(1)时却看起来像是.*因为w是个对象,而不是对象指针,这样未免会造成迷惑,C++为什么会允许这样的重载呢rn
关于Floyd的一些疑问
Floyd是一个很简单的算法, 运用了动态规划的思想. 它是这么描述求最短路的过程的: 设Di,j,kDi,j,kD_{i, j, k} 是i到j的只以(1⋯k)(1⋯k)(1\cdots k)集合中的节点==为中间节点==的最短路径的长度. 若最短路径经过点k, 则Di,j,k=Di,k,k−1+Dk,j,k−1Di,j,k=Di,k,k−1+Dk,j,k−1D_{i, j, k} = D...
关于自定义函数的一些疑问
自定义函数:rnFunction selectdb(sql)rn Set rs=server.createobject("adodb.recordset")rn rs.open sql,conn,1,3rn if rs.eof Thenrn response.write "对不起,暂无信息!"rn End If rn end Function rn在另外一个页面调用这个函数:rn rn但是我在下面读MYNEWS这个表中的记录时候出现错误?rn我是用rs("title")来读取的rn在我的理解中,我调用了这个函数,它就应该自动为我打开这个表,下面我读取记录应该是正常。但是系统提示rnMicrosoft VBScript 运行时错误 '800a000d' rnrn类型不匹配: 'rs' rnrn刚接触ASP的自定义函数,请大家指正下?
关于接口的一些疑问???
1,接口这个概念是在什么时候,什么情景下引入的,它的引入对编程有哪些有益的改进与加强?
关于cmd.exe的一些疑问
我的操作系统是windows xp professional sp2rn最近常会出现cmd.exe占用cpu资源100%,怀疑中毒,卡巴6杀不掉,现在想问一下如何查看cmd.exe执行了什么命令,以便查找病毒源。rn或者大家还有什么好的解决方案么?
关于js this的一些疑问
当我们为一个标签绑定onclick事件时:比如**rn rn但是如果我们在加载页面时 绑定:如:**rn rnrn有谁能解释下 两者的区别 及为什么结果不一样呢?谢谢rn
关于字符编码的一些疑问
我想写个程序是把网页的内容读到wstring里面保存下来,网页是不是有不同的编码,我想用multibytetowidechar把char缓冲区的读到的东西都转换为宽字符,但是我选择第一个参数的时候<em>一些</em><em>疑问</em>,加入那个网页是用GB2312编码,是不是内容都是用2个字节来表示的,就是unicode编码,我上次看了下一样的汉字的ascii编码和unicode编码不一样,可是第一个参数只有以下的选择rnCP_ACP ANSI code page rnCP_MACCP Macintosh code page rnCP_OEMCP OEM code page rnCP_SYMBOL Windows 2000/XP: Symbol code page (42) rnCP_THREAD_ACP Windows 2000/XP: The current thread's ANSI code page rnCP_UTF7 Windows 98/Me, Windows NT 4.0 and later: Translate using UTF-7 rnCP_UTF8 Windows 98/Me, Windows NT 4.0 and later: Translate using UTF-8. rnrn我觉得是不是应该要用UTF16呢?rn
关于完成端口的一些疑问
从来没有用过完成端口,才开始学感觉什么也不懂,有一种想问问人但又不知道问什么的感觉。rnrn在CreateIoCompletionPort函数中,第三个参数CompletionKey,它有什么用呢?rn我找的一个例子是把SOCKET句柄放到了这里rn但查资料好像说还能放一个结构体之类的东西,结构体中存放与SOCKET句柄相关的东西rn想问下,什么是与SOCKET句柄相关的东西呢?rn我定义的一个OVERLAPPED结构体里不是已经有了我需要的东西了吗?还需要在那里放些什么东西呢
关于if语句的一些疑问
问题1:rnif a=1 thenrn这里让他跳转页面rnelsern.....rnend ifrnconn.closernrn如果a=1的话,跳转页面,那下面end if之后的关闭数据库连接的语句还能不能被执行到。rnrnrn问题2:rnif rs.eof thenrn response.write("无数据")rnelsernend ifrnif rs("ding1")=1 then rn response.write("没这个字段")rnelsernend ifrn response.write("程序执行")rn上面的语句实现的功能不就跟下面这段代码一样了 rnrnif rs.eof thenrn response.write("无数据")rnelsern if rs("ding1")=1 then rn rssponse.write("没这个字段")rn elsern response.write("程序执行")rn end ifrnend ifrn是不是一样
关于fscanf_s的一些疑问
请教各位,<em>关于</em>fscanf_s的<em>一些</em>问题rn这里有一个名为motionbas.txt的文档,其内容如下:rnNUM=3rnmotionbase\0.png 1rnmotionbase\1.png 2rnmotionbase\2.png 1rn用如下程序读取文档的内容到指定变量中,rn FILE *fp=fopen("motionbase.txt","r");rn char imageFile[20];rn int numBaseImage,state;rn fscanf_s(fp,"NUM=%d\n",&numBaseImage);rn for (int i=0;i
关于handler的一些疑问
Handler handler=new Handler();rnhandler.post(r);rnrnRunnable r=new Runnable()rn public void run()rn //具体操作rn rn;rnrnrn我们都知道通过handler的post方法调用是将一个Runnable对象放入到消息队列中,其中run方法内的部分也是在主线程中执行的,而没有去开辟一条新线程。那既然这样 handler的post方法存在的意义是什么,我们完全可以将run部分的代码直接写在主线程内啊,何必多此一举,希望大神指点。
关于更新数据的一些疑问
我所看到过的项目中,都是采用以下步骤更新数据:rn1. Get by id:得到需要更新的对象。rn2. 给对象赋值。rn3. 更新对象。rnrn一般更新只针对对象的很少字段进行,但第一步就会取出对象的所有字段,所以这种做法是不是效率比较低?
关于虚函数的一些疑问
c++ primer里说要实现动态绑定必须满足一下两个条件:rn第一:只有指定为虚函数的成员函数才能进行动态绑定。rn这个的原因是因为有虚函数会创建一个virtual table,所以子类对象会把自己虚函数的地址替换掉父类的rnrn可以这么理解不?rnrn第二,必须通过基类类型的引用或指针进行函数调用。rn这个是因为若不是通过引用或指针,那么子类对象会被“切割”成一个基类对象rn但是我有点<em>疑问</em>比如:rnDerived d;rnBase b = drnd会被“切割”成一个Base对象,但是d对象的virtual table地址不会被复制到b对象吗?如果说被复制给b对象,那么还是可以实现动态绑定的吧。。。。有点疑惑rn请高手帮忙解答下两个<em>疑问</em>(第一个我理解的对不对,还有第二个的疑惑)
关于多线程的一些疑问
<em>关于</em>多线程,我一直有一个<em>疑问</em>,比如说单核单线程的电脑 如果使用多线程的话,是不是 类似于堆栈那样一个个的去运行 ,或者说现在的双核4线程或者说4核8线程 的电脑,开启多线程的时候 最多可以同时开运行的最大线程数 是有限的个数 还是说是根据 我CPU的使用率 来确定最多的线程数(比如说同时运行7个线程cpu打到100%的使用率)那么该程序最多开启的线程数为7个 rnrnrn来人讨论或者讲解下呗
关于ConcurrentHashMap的一些疑问
ConcurrentHashMap代码中不断出现的UNSAFE.getObject,UNSAFE.getObjectVolatile, UNSAFE.putOrderedObject是什么意思?怎么用的?没有API解释一下啊
关于P2P的一些疑问
用P2P下载软件向服务器发下载请求,服务器只返回客户机有这个文件的唯一标识符,让请求下载的客户机与拥有资源的客户机连接,请问用怎样的方法比较好呢?rn例如将文件分成100份,从服务器返回的信息知道有N台客户机有这个文件,然后从每台资源机上下载1份,再向服务器请求,再下载N份(或者X份,下载的过程中增加或者减少了拥有资源的客户机)。问题是,如果在下载某一份时,资源机下线了,那没下载完的那一份就不完整了。rn本人是菜鸟,希望各位牛人不吝赐教。谢谢了~~~
关于PSR的一些疑问
前几天才知道有PSR这个应用,搜索引擎上的说明是PSR有“很好的解决动态dw,调整报表”等强大功能。rn于是乎接着看了有关代码。发现例子代码无非就是将dw saveas为psr的格式。rn然后用modify dw里面的控件。然后将dw的格式保存到数据库。rnrn至此丝毫没发现psr的强大之处(就是说以往动态dw,调整报表的时候,也是modify控件的可移动属性,xy属性,然后保存dw到数据库)rnrn所以特此来请教高人,好心人,路人。PSR一般是如何利用的?为什么例子的代码没有搜索出来的描述强大呢?rn还是我理解有问题?rn先谢谢了。
关于程序运行的一些疑问
暂时不考虑托管程序。有些人说,在windows下操作系统通过加载PE文件进行程序的运行,那么我的<em>疑问</em>就是,那么PE文件应该和操作系统规定的格式有关,而与实际的硬件无关。那么为什么windows下的PE文件在wp,和wince下不能执行?它们的格式应该一样的啊,操作系统将PE文件加载后解析运行在不同的平台应该没问题啊。但是为什么又不行呢?(其实我不太熟悉pe文件,只是搜索到有些资料,有点好奇)
关于多线程一些疑问??
[code=c]rnrnrn#include "stdafx.h"rn#include rn#include rn#include rnrnlong g_nNum; rnunsigned int __stdcall Fun(void *pPM); rnconst int THREAD_NUM = 200; rnCRITICAL_SECTION g_csThreadCode; rnrnint main() rn rn g_nNum = 0; rn HANDLE handle[THREAD_NUM]; rn InitializeCriticalSection(&g_csThreadCode); rnrnrn int i = 0; rn while (i < THREAD_NUM) rn rn handle[i] = (HANDLE)_beginthreadex(NULL, 0, Fun, NULL, 0, NULL); rn i++;rn rn rn //Sleep(1000); (如果注释掉为什么会报错???)rnrn DeleteCriticalSection(&g_csThreadCode); rn system("pause");rn return 0; rn rnrnunsigned int __stdcall Fun(void *pPM) rn rn EnterCriticalSection(&g_csThreadCode); rnrn g_nNum++; rn printf("全局资源值为%d\n", g_nNum); rnrn LeaveCriticalSection(&g_csThreadCode); rnrn rn return 0; rn rnrn[/code]rnrnrn上面那个 sleep 注释掉,为什么能报错啊,难道要等他处理完 还是 ?
关于String.getBytes()的一些疑问
前几天看到一帖子,lz想要实现将010101这样的字符串翻译成byte然后再转换成相应编码的字符串rn写了一下只能在utf-8编码下实现,不是很理想。今天又写了一写在进行测试的时候发下了个问题rnrnbyte[] g=new String("我是谁a").getBytes(); //占用7字节rnbyte[] f=new String("我是谁a").getBytes("gbk"); //占用7字节结果同上rnbyte[] d=new String("我是谁a").getBytes("utf-8"); //占用10字节rn原本以为java中的字符采用unicode编码,所以每个字符翻译成byte应该都占用2个字节。rn可是确不是我想象的那样,翻译成字节后英文还是只占用一个字节,中文在gbk编码下占2字节,rnutf-8下占3字节。谁能解释下getBytes的转换原理?翻译成byte后如何判断一个字符是中文rn还是英文?一般这样的翻译程序是怎么处理的
关于数据库备份的一些疑问
我想做个 按我指定的时间,,每天去备份下数据库。的程序。。。rnrn这样的程序 应该怎么写。。。能说说原理吗。。。谢谢大家了。。。
关于lock的一些疑问
以下是MSDN文档里面的代码,rn说用了lock锁住了,balance永远不会小于0,为什么呢?rn意思是不是说,只执行lock大括号里面的代码,那个 if (balance < 0)就不执行了?rnrn请知道的人解释清楚一下,非常感谢rnusing System;rnusing System.Threading;rnclass Accountrnrn private object thisLock = new object();rn int balance;rn Random r = new Random();rn public Account(int initial)rn rn balance = initial;rn rn int Withdraw(int amount)rn rn if (balance < 0)rn rn throw new Exception("Negative Balance");rn rn // Comment out the next line to see the effect of leaving out rn // the lock keyword:rn lock (thisLock)rn rn if (balance >= amount)rn rn Console.WriteLine("Balance before Withdraw1: " + balance);rn Console.WriteLine("Amount to Withdraw : " + amount);rn balance = balance - amount;rn Console.WriteLine("Balance after Withdrawal : " + balance);rn return amount;rn rn elsern rn return 0;rn rn rn rn public void DoTransactions()rn rn for (int i = 0; i < 100; i++)rn Withdraw(r.Next(1,100));rn rnrnclass Textrnrn static void Main()rn rn Thread[] threads = new Thread[10];rn Account acc = new Account(100);rn for (int i = 0; i < 10; i++)rn rn Thread t = new Thread(new ThreadStart(acc.DoTransactions));rn threads[i] = t;rn rn for (int i = 0; i < 10; i++)rn rn threads[i].Start();rn //此处用2个循环,我把 threads[i].Start();放在第一个循环里面,运行结果也一样,我觉得好像没多大区别rn Console.Read();rnrn rnrn
关于zigbee的一些疑问
cc2420有人熟悉马?请讲解一下他和单片机的连接。
关于内存管理的一些疑问
最近学习了linux内存管理 有<em>一些</em><em>疑问</em>一直不太清楚rn1、有人说分段是问了兼容8086的分段机制不能关闭,淡深入linux内核书中说分段后有四个常用段 用户代码段内核代码段用户数据段用户代码段 并且这些段的起始地址都是0,我想问那这样是不是采用得现代操作系统上所说的分段分页结合模式,即代码段和数据段使用的是分别单独的4g地址空间分页的时候每个段有各自的页表?rn还是代码段和数据段并没有单独的地址空间也就没有单独 的页表,一个进程使用的只有一个4g的地址空间?哪种理解是对的呢?rn2、既然分段中已经将内核空间和用户空间分为了两个空间 ,那为什么分页时又将4g空间分为1g和3g?rn3、内核地址空间1g映射中有894m是不是映射在物理地址上由所有进程共享?既所有进程使用这部分线性地址都指向相同的物理地址 想确定下rn4、内核地址空间固定映射区作用是什么。rn5、 永久内存映射区用来访问高端内存那为什么要叫永久内存映射区 (这个问题可能有点白痴了)rn问了好多 求好心人指教
alfresco4.0部署及分离solr下载
alfresco详细安装步骤及如何将solr分离部署 相关下载链接:[url=//download.csdn.net/download/zhulei0429/5287406?utm_source=bbsseo]//download.csdn.net/download/zhulei0429/5287406?utm_source=bbsseo[/url]
植物大战僵尸超简AndroidDEMO下载
植物大战僵尸超简AndroidDEMO 代码 相关下载链接:[url=//download.csdn.net/download/qigaosheng/6333937?utm_source=bbsseo]//download.csdn.net/download/qigaosheng/6333937?utm_source=bbsseo[/url]
usb Tool Test下载
usb Tool Test 相关下载链接:[url=//download.csdn.net/download/jyj402349170/8040127?utm_source=bbsseo]//download.csdn.net/download/jyj402349170/8040127?utm_source=bbsseo[/url]
相关热词 c#检测非法字符 c#双屏截图 c#中怎么关闭线程 c# 显示服务器上的图片 api嵌入窗口 c# c# 控制网页 c# encrypt c#微信网页版登录 c# login 居中 c# 考试软件
我们是很有底线的