日韩一区二区三区精品,欧美疯狂xxxxbbbb牲交,热99re久久免费视精品频,人妻互换 综合,欧美激情肉欲高潮视频

歷史上的今天

今天是:2025年07月07日(星期一)

2020年07月07日 | S3C2440聲卡驅(qū)動(dòng)移植、測試以及madplay播放mp3文件(三十一)

發(fā)布者:雷電狂舞 來源: eefocus關(guān)鍵字:S3C2440  聲卡驅(qū)動(dòng)移植  madplay播放  mp3文件 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

本節(jié)學(xué)習(xí):


分析linux中的OOS聲卡系統(tǒng)

修改s3c2410-uda1341.c的控制部分,移植wm8976聲卡

使用madplay應(yīng)用程序播放mp3

本節(jié)常用英語單詞:


volume:音量,dsp:數(shù)字信號(hào)處理(Digital Signal Processing),mixer:混音器,unit:單位,個(gè)體 

1、聲音三要素


采樣頻率


音頻采樣率是指錄音設(shè)備在一秒鐘內(nèi)對聲音信號(hào)的采樣次數(shù),常用的采樣率有:


8KHz ---電話所用采樣率,對于人的說話已經(jīng)足夠清楚

22.05KHz ---無線電廣播所用采樣率

32KHz ---miniDV數(shù)碼視頻、DAT所用采樣率

44.1KHz ---音頻CD,也常用于MPEG-1 視頻(VCD、SVCD、MP3)所用采樣率

48KHz ---miniDV、數(shù)字電視、DVD、DAT、電影和專業(yè)視頻所用的數(shù)字聲音所用采樣率

50KHz ---商用數(shù)字錄音機(jī)所用采樣率

96KHz ---BD-ROM(藍(lán)光盤)音軌和HD_DVD(高清晰度DVD)音軌等所用采樣率

而2440開發(fā)板的采樣頻率IISLRCK最高可以達(dá)到96KHz,滿足了很多常用的采樣場合,如下圖所示:


量化位數(shù)


指每個(gè)采樣點(diǎn)里傳輸?shù)?a href="http://www.weightgang.cn/zhuanti/4yjTuH" style="color:#4595e6;" target="_blank">數(shù)字信號(hào)次數(shù),如下圖所示,其中藍(lán)線表示模擬信號(hào),紅線表示數(shù)字信號(hào),量化位越高,數(shù)字信號(hào)就越可能接近原始信號(hào),音質(zhì)越好


一般的量化位數(shù)為:


8位:分成256次;

16位:分成65536次,已到CD標(biāo)準(zhǔn);

32位:分成4294967296次,很少用到

2440的開發(fā)板只支持8位,16位,如下圖所示:


其中LRCK就是采樣頻率,當(dāng)LRCK為低時(shí),表示傳輸?shù)牟蓸訑?shù)據(jù)是左聲道,當(dāng)LRCK為高時(shí),表示傳輸?shù)牟蓸訑?shù)據(jù)是右聲道,每個(gè)采樣點(diǎn),SD(serial data)都可以傳輸8位,或16位數(shù)字信號(hào)(從低位到高位傳輸)


聲道數(shù)


常有單聲道和立體聲之分,(有的也處理成兩個(gè)喇叭輸出同一個(gè)聲道的聲音),而立體聲更能感受到空間效果,但數(shù)據(jù)量翻倍


所以,聲音的每秒數(shù)據(jù)量(字節(jié)/s)=(采樣頻率 X 量化位數(shù) X 聲道數(shù))/8;


2、WM8976聲卡硬件分析


聲卡是負(fù)責(zé)錄音、播音、調(diào)節(jié)音量和聲音合成等的一種多媒體板卡


本節(jié)使用的聲卡是2440板上自帶的WM9876聲卡

當(dāng)我們播放聲音時(shí),將數(shù)字信號(hào)傳入I2SDO腳,聲卡便通過解碼,產(chǎn)生模擬信號(hào)到喇叭/耳機(jī)


當(dāng)我們錄音時(shí),聲卡便獲取麥克風(fēng)的模擬信號(hào),編碼出數(shù)字信號(hào)到I2SDI引腳上


VM8976接口分為兩種:I2S接口(提供音頻接收和發(fā)送)、控制接口(控制音量大小,使能各個(gè)輸出通道等)


IIS接口相關(guān)的引腳如下:


MCLK:主機(jī)為解碼芯片提供的系統(tǒng)同步時(shí)鐘(Master/system clock input)

BCLK:編解碼芯片提供的串行時(shí)鐘信號(hào)(Audio bit clock output)

I2SLRCK:采樣頻率信號(hào),當(dāng)為低電平時(shí)是采樣的是左聲道信號(hào),為高電平時(shí)是采樣的是右聲道信號(hào)

I2SDI:ADC數(shù)據(jù)輸入

I2SDO:DAC數(shù)據(jù)輸出

如下圖所示:

控制接口相關(guān)的引腳如下:


CSB/GPIO1:3線 控制數(shù)據(jù)使能引腳

SCLK:3線/2線 始終引腳

SDIN:3線/2線 數(shù)據(jù)輸入輸出引腳

MODE:3線/2線 控制選擇,當(dāng)MODE為高,表示3線控制,MODE為低,表示2線控制,如下圖所示:


其他引腳如下:


R/LOUT1:音頻左/右輸出通道1,外接耳機(jī)插孔

R/LOUT2:音頻左/右輸出通道2,未接

OUT3:單聲道輸出通道3,未接

OUT4:單聲道輸出通道4,未接

LIP/LIN:音頻輸入通道,外接麥克風(fēng)

 

那么3線和2線的控制引腳又有什么區(qū)別呢?


3線控制:


如下圖所示,3線控制,每周期都要傳輸16位數(shù)據(jù)(7位寄存器地址 + 9位寄存器數(shù)據(jù)),傳輸完成后,給CSB一個(gè)上升沿便完成一次數(shù)據(jù)的傳輸


2線控制:


如下圖所示,2線控制就是I2C通信方式


本節(jié)的WM8976的MODE引腳的高電平,所以是3線控制


3、接下來便來分析linux內(nèi)核的聲卡系統(tǒng)


在linux聲卡中存在兩種聲卡系統(tǒng),一種是OSS(開放聲音系統(tǒng)),一種是ALSA(先進(jìn)linux聲音架構(gòu))。本節(jié)系統(tǒng)以O(shè)SS(Open Sound System)為例,


內(nèi)核以linux-2.6.22.6版本為例,位于:linux-2.6.22.6soundsound_core.c


3.1 首先進(jìn)入入口函數(shù)


如下圖所示:


入口函數(shù)里,只注冊了一個(gè)主設(shè)備號(hào)為(SOUND_MAJOR)14的"sound"字符設(shè)備和class類,這里為什么咩有創(chuàng)建設(shè)備節(jié)點(diǎn)?


是因?yàn)?,?dāng)注冊聲卡系統(tǒng)的驅(qū)動(dòng)后,才會(huì)有設(shè)備節(jié)點(diǎn),此時(shí)這里的代碼是沒有驅(qū)動(dòng)的,后面會(huì)分析到


3.2 再來看看"sound"字符設(shè)備的file_operations:


這里只有一個(gè).open,為什么沒有read,write函數(shù)?


顯然在.open函數(shù)里做了某些處理,我們進(jìn)入soundcore_open()來看看


soundcore_open()代碼如下:


int soundcore_open(struct inode *inode, struct file *file)

{

int chain;

int unit = iminor(inode);//獲取次設(shè)備號(hào),通過次設(shè)備號(hào)來找聲卡驅(qū)動(dòng)

struct sound_unit *s;

const struct file_operations *new_fops = NULL;//定義一個(gè)新的file_operations

 

chain=unit&0x0F;

if(chain==4 || chain==5) /* dsp/audio/dsp16 */

{

unit&=0xF0;

unit|=3;

chain=3;

}

spin_lock(&sound_loader_lock);

s = __look_for_unit(chain, unit);//里面通過chains[chain]數(shù)組里找到sound_unit結(jié)構(gòu)體,一個(gè)sount_unit對應(yīng)一個(gè)聲卡驅(qū)動(dòng)

if (s)

new_fops = fops_get(s->unit_fops);//通過sound_unit,獲取對應(yīng)的file_operations

... ...

if (new_fops) {//當(dāng)找到file_operations

int err = 0;

const struct file_operations *old_fops = file->f_op;//設(shè)上次的file_operations等于當(dāng)前的

file->f_op = new_fops;//設(shè)置系統(tǒng)的file_operations等于s->unit_fops

spin_unlock(&sound_loader_lock);

if(file->f_op->open)

err = file->f_op->open(inode,file);

if (err) {

fops_put(file->f_op);

file->f_op = fops_get(old_fops);

}

fops_put(old_fops);

return err;

}

spin_unlock(&sound_loader_lock);

return -ENODEV;

}


通過上面的代碼和注釋分析到,系統(tǒng)聲卡之所以只有一個(gè)open(),里面是通過次設(shè)備號(hào)來調(diào)用__look_for_unit()函數(shù),找到chains[chain]數(shù)組里的驅(qū)動(dòng)聲卡sound_unit結(jié)構(gòu)體,然后來替換系統(tǒng)聲卡的file_operations,實(shí)現(xiàn)偷天換日的效果。


__look_for_unit()函數(shù)如下圖所示:


static struct sound_unit *__look_for_unit(int chain, int unit)

{

struct sound_unit *s;

s=chains[chain];

while(s && s->unit_minor <= unit)

{

if(s->unit_minor==unit)

return s;

s=s->next;

}

return NULL;

}

其中chains[]數(shù)組定義如下所示:


其中,chains[0]存放的Mixers(混音),實(shí)現(xiàn)調(diào)節(jié)音量,高音等,就是我們VM8976的控制接口


chains[3]存放的DSP,用來實(shí)現(xiàn)音頻輸入輸出,就是我們VM8976的I2S接口


顯然VM8976的驅(qū)動(dòng)有兩個(gè),需要將2個(gè)file_operaions放入chains[0]和chains[3]數(shù)組里,供給系統(tǒng)的open()來調(diào)用


3.3 我們以DSP為例,搜索chains[3]來看看


如上圖所示,顯然register_sound_dsp()函數(shù)就是被我們聲卡驅(qū)動(dòng)調(diào)用的,用來注冊dsp設(shè)備節(jié)點(diǎn),繼續(xù)進(jìn)入sound_insert_unit()函數(shù)看看


3.4 sound_insert_unit()函數(shù)如下


static int sound_insert_unit(struct sound_unit **list, const struct file_operations *fops, int index, int low, int top, const char *name, umode_t mode, struct device *dev)

{

struct sound_unit *s = kmalloc(sizeof(*s), GFP_KERNEL);//分配個(gè)新的sound_unit

int r;

 

if (!s)

return -ENOMEM;

spin_lock(&sound_loader_lock);

 

//__sound_insert_unit()里主要實(shí)現(xiàn):將分配的新的s插入到chains[3]里,然后并放入fops操作結(jié)構(gòu)體

 

r = __sound_insert_unit(s, list, fops, index, low, top);

spin_unlock(&sound_loader_lock);

if (r < 0)

goto fail;

else if (r < SOUND_STEP)

sprintf(s->name, "sound/%s", name);

else

sprintf(s->name, "sound/%s%d", name, r / SOUND_STEP);

 

device_create(sound_class, dev, MKDEV(SOUND_MAJOR, s->unit_minor),

      s->name+6);

    //s->name+6="dsp",也就是在/dev下創(chuàng)建"dsp"的設(shè)備節(jié)點(diǎn)

 

return r;

 

 fail:

kfree(s);

return r;

}

所以,register_sound_dsp()函數(shù)用來創(chuàng)建/dev/dsp設(shè)備節(jié)點(diǎn),同時(shí)將dsp相關(guān)的file_operations放入chains[3]里面


3.5 同樣,Mixers的驅(qū)動(dòng)流程也是這樣,它的函數(shù)是register_sound_mixer(),如下圖所示:


也是創(chuàng)建/dev/mixer設(shè)備節(jié)點(diǎn),同時(shí)將dsp相關(guān)的file_operations放入chains[0]里面


3.6 接下來,我們便搜索register_sound_dsp()函數(shù),看看被哪些聲卡驅(qū)動(dòng)調(diào)用


uda1341聲卡和WM8976聲卡非常相似,音頻都是I2S接口,就只有控制部分不一樣


uda1341聲卡的硬件,如下圖所示:

它的控制引腳只有3個(gè):


L3MODE:模式引腳,為高表示傳輸?shù)氖菙?shù)據(jù),為低表示傳輸?shù)氖羌拇嫫鞯刂?p>

L3CLOCK:時(shí)鐘引腳


L3DATA:數(shù)據(jù)輸入/輸出引腳


控制接口的時(shí)序如下所示:




和WM8976的控制時(shí)序完全不一樣,WM8976控制時(shí)序如下所示:




所以接下來,便修改s3c2410-uda1341.c的控制部分,來移植wm8976驅(qū)動(dòng)


 


4、移植wm8976驅(qū)動(dòng)


首先進(jìn)入uda1341的probe()函數(shù)


 

static int s3c2410iis_probe(struct device *dev) 

{

struct platform_device *pdev = to_platform_device(dev);

struct resource *res;

unsigned long flags;

 

printk ("s3c2410iis_probe...n");

    /* 獲取資源 */

res = platform_get_resource(pdev, IORESOURCE_MEM, 0);

if (res == NULL) {

printk(KERN_INFO PFX "failed to get memory region resoucen");

return -ENOENT;

}

 

iis_base = (void *)S3C24XX_VA_IIS ;

if (iis_base == 0) {

printk(KERN_INFO PFX "failed to ioremap() regionn");

return -EINVAL;

}

 

    /* 獲取I2S時(shí)鐘,并使能 */

iis_clock = clk_get(dev, "iis");

if (iis_clock == NULL) {

printk(KERN_INFO PFX "failed to find clock sourcen");

return -ENOENT;

}

 

clk_enable(iis_clock);

    /* 進(jìn)入臨界區(qū),禁止中斷,并保存中斷狀態(tài) */

local_irq_save(flags);

    /* 設(shè)置管腳功能 */

/* GPB 4: L3CLOCK, OUTPUT */

s3c2410_gpio_cfgpin(S3C2410_GPB4, S3C2410_GPB4_OUTP);

s3c2410_gpio_pullup(S3C2410_GPB4,1);

/* GPB 3: L3DATA, OUTPUT */

s3c2410_gpio_cfgpin(S3C2410_GPB3,S3C2410_GPB3_OUTP);

/* GPB 2: L3MODE, OUTPUT */

s3c2410_gpio_cfgpin(S3C2410_GPB2,S3C2410_GPB2_OUTP);

s3c2410_gpio_pullup(S3C2410_GPB2,1);

/* GPE 3: I2SSDI */

s3c2410_gpio_cfgpin(S3C2410_GPE3,S3C2410_GPE3_I2SSDI);

s3c2410_gpio_pullup(S3C2410_GPE3,0);

/* GPE 0: I2SLRCK */

s3c2410_gpio_cfgpin(S3C2410_GPE0,S3C2410_GPE0_I2SLRCK);

s3c2410_gpio_pullup(S3C2410_GPE0,0);

/* GPE 1: I2SSCLK */

s3c2410_gpio_cfgpin(S3C2410_GPE1,S3C2410_GPE1_I2SSCLK);

s3c2410_gpio_pullup(S3C2410_GPE1,0);

/* GPE 2: CDCLK */

s3c2410_gpio_cfgpin(S3C2410_GPE2,S3C2410_GPE2_CDCLK);

s3c2410_gpio_pullup(S3C2410_GPE2,0);

/* GPE 4: I2SSDO */

s3c2410_gpio_cfgpin(S3C2410_GPE4,S3C2410_GPE4_I2SSDO);

s3c2410_gpio_pullup(S3C2410_GPE4,0);

 

    /* 退出臨界區(qū),使能中斷,并恢復(fù)之前保存的flags中斷轉(zhuǎn)臺(tái) */

local_irq_restore(flags);

 

    /* 設(shè)置2440的I2S寄存器 */

init_s3c2410_iis_bus();

 

    /* 初始化uda1341聲卡的控制部分 */

//init_uda1341();

init_wm8976();

 

    /* 設(shè)置DMA輸入通道,用來接收聲音 */

output_stream.dma_ch = DMACH_I2S_OUT;

if (audio_init_dma(&output_stream, "UDA1341 out")) {

audio_clear_dma(&output_stream,&s3c2410iis_dma_out);

printk( KERN_WARNING AUDIO_NAME_VERBOSE

": unable to get DMA channelsn" );

return -EBUSY;

}

    

input_stream.dma_ch = DMACH_I2S_IN;

if (audio_init_dma(&input_stream, "UDA1341 in")) {

audio_clear_dma(&input_stream,&s3c2410iis_dma_in);

printk( KERN_WARNING AUDIO_NAME_VERBOSE

": unable to get DMA channelsn" );

return -EBUSY;

}

 

    /* 創(chuàng)建/dev/dsp,/dev/mixer兩個(gè)設(shè)備節(jié)點(diǎn),并將smdk2410_audio_fops和smdk2410_mixser_fops兩個(gè)file_operations放入chains[0]和chains[3]里,供給內(nèi)核的聲卡系統(tǒng)調(diào)用 */

audio_dev_dsp = register_sound_dsp(&smdk2410_audio_fops, -1);

audio_dev_mixer = register_sound_mixer(&smdk2410_mixer_fops, -1);

 

printk(AUDIO_NAME_VERBOSE " initializedn"); 

 

return 0;

}

從上面的代碼來看,uda1341的管腳和wm8976的管腳連接都是一樣的,只有init_uda1341()不一樣,里面是初始化uda1341的控制引腳接口,所以需要屏蔽,然后自己來寫個(gè)init_wm8976()函數(shù)


4.1 寫init_wm8976()函數(shù)之前需要先寫一個(gè)寄存器操作函數(shù)


參考wm8976芯片手冊時(shí)序圖:




所以,代碼如下:


 

//寫寄存器

static void wm8976_write_reg(unsigned char reg, unsigned int data)

{

int i;

unsigned long flags;

 

//reg值:寄存器地址(7位),date值(9位)

//把這兩個(gè)值組成一個(gè)16位的數(shù)據(jù)

unsigned short val = (reg<<9) | (data & 0x1ff);

 

//先都設(shè)為高電平,方便操作

//GPB4--L3CLOCK,GPB3--L3DATA,GPB2--L3MODE

s3c2410_gpio_setpin(S3C2410_GPB2,1);

s3c2410_gpio_setpin(S3C2410_GPB3,1);

s3c2410_gpio_setpin(S3C2410_GPB4,1);

 

local_irq_save(flags);//先關(guān)中斷

 

for (i = 0; i < 16; i++)

{

//先傳輸最高位

if(val & (1<<15))//如果這一位是1

{

/* 一個(gè)周期 */

s3c2410_gpio_setpin(S3C2410_GPB4,0);//時(shí)鐘低電平

s3c2410_gpio_setpin(S3C2410_GPB3,1);//數(shù)據(jù)線輸入1

udelay(1);//延遲

s3c2410_gpio_setpin(S3C2410_GPB4,1);//時(shí)鐘高電平

}

else//如果這一位是0

{

/* 一個(gè)周期 */

s3c2410_gpio_setpin(S3C2410_GPB4,0);//時(shí)鐘低電平

s3c2410_gpio_setpin(S3C2410_GPB3,0);//數(shù)據(jù)線輸入0

udelay(1);//延遲

s3c2410_gpio_setpin(S3C2410_GPB4,1);//時(shí)鐘高電平

}

val = val << 1;//左移一位,把下一位移過來

}

 

//傳輸完成后,讓CSB信號(hào)產(chǎn)生低脈沖,寫入wm8976

s3c2410_gpio_setpin(S3C2410_GPB2,0);

udelay(1);//延遲

s3c2410_gpio_setpin(S3C2410_GPB2,1);//過一陣子恢復(fù)高電平

//把其他引腳也恢復(fù)高電平狀態(tài)

s3c2410_gpio_setpin(S3C2410_GPB3,1);

s3c2410_gpio_setpin(S3C2410_GPB4,1);

 

local_irq_restore(flags);//結(jié)束開中斷

 

}

4.2 參考wm8976.pdf第87頁,來初始化wm8976,使能輸出聲道1,2,混響器等


 

static void init_wm8976(void)

{

uda1341_volume = 57;

uda1341_boost = 0;

 

/* software reset 軟件復(fù)位 */

wm8976_write_reg(0, 0);

 

//芯片手冊說,先寫地址3,再寫地址1,最后寫地址2

/* bit[6-5]:OUT2的左/右聲道打開 

* bit[3-2]:左/右通道輸出混音打開

* bit[1-0]:左/右DAC打開

*/

wm8976_write_reg(0x3,  0x6f);

 

//bit[4]:使能輸出麥克風(fēng)電壓,為了方便將其他設(shè)置為1

wm8976_write_reg(0x1,  0x1f);

wm8976_write_reg(0x2,  0x185);

wm8976_write_reg(0x6,  0x0);

wm8976_write_reg(0x4,  0x10);

wm8976_write_reg(0x2B, 0x10);

wm8976_write_reg(0x9,  0x50);

[1] [2]
關(guān)鍵字:S3C2440  聲卡驅(qū)動(dòng)移植  madplay播放  mp3文件 引用地址:S3C2440聲卡驅(qū)動(dòng)移植、測試以及madplay播放mp3文件(三十一)

上一篇:S3C2440 熱拔插驅(qū)動(dòng) 修改mdev配置支持U盤自動(dòng)掛載(三十三)
下一篇:最后一頁

推薦閱讀

由中國鐵路總公司、科學(xué)技術(shù)部、北京市人民政府、天津市人民政府共同主辦的“智能高鐵發(fā)展暨京津城際鐵路開通十周年論壇”在北京舉行。會(huì)上中國鐵路總公司黨組書記、總經(jīng)理陸東福宣布,今年四季度,電子客票將試點(diǎn)經(jīng)營,明年將在全國高鐵推廣。?此前,在中國鐵路總公司召開的2018年工作會(huì)議上,陸東福就已提出,今年在提升運(yùn)輸服務(wù)水平方面,鐵總將繼續(xù)拓...
6月23日,國內(nèi)首個(gè)“多站合一”全直流預(yù)制式數(shù)據(jù)中心在蘇州同里區(qū)域能源互聯(lián)網(wǎng)示范區(qū)投運(yùn)。該中心也是江蘇綜合能源數(shù)據(jù)平臺(tái)的重要組成部分。 作為江蘇綜合能源服務(wù)平臺(tái)的數(shù)據(jù)“收集池”和“中轉(zhuǎn)站”,各類能源數(shù)據(jù)在這里匯總。除電力系統(tǒng)內(nèi)部數(shù)據(jù)外,該中心還將采集宏觀經(jīng)濟(jì)、氣象等外部數(shù)據(jù),客戶側(cè)設(shè)備用能數(shù)據(jù),以及園區(qū)級專項(xiàng)子系統(tǒng)、社會(huì)能效服務(wù)...
之前有外媒報(bào)道稱,印度一位高級官員表示,印度政府將禁止中國為任何國有電信運(yùn)營商提供電信設(shè)備,也可能禁止私有運(yùn)營商使用華為和中興的設(shè)備?,F(xiàn)在印度已決定將中國通信企業(yè)華為移出該國的5G網(wǎng)絡(luò)建設(shè)計(jì)劃。印度電力部當(dāng)日亦宣布新規(guī)定,該國企業(yè)進(jìn)口電力設(shè)備和零件前,須先取得政府許可。俄媒引述消息來源報(bào)導(dǎo),印度電信部長普拉薩德Ravi?Shankar?Prasad...
隨著訂單不斷恢復(fù),日本機(jī)床行業(yè)不僅面臨半導(dǎo)體持續(xù)缺貨影響,還面臨滾珠絲杠等其他零部件的采購困難。據(jù)日刊工業(yè)新聞報(bào)道,芝浦機(jī)械的社長坂元繁友表示,半導(dǎo)體采購情況一天比一天糟糕。坂元繁友指出,因零部件采購困難而導(dǎo)致的成本增加在一定程度上影響了截至2022年3月財(cái)年的業(yè)績預(yù)測,但實(shí)際上仍難以預(yù)測影響會(huì)有多大。而半導(dǎo)體以外的零部件采購也充滿...

史海拾趣

問答坊 | AI 解惑

電能質(zhì)量分析儀

這個(gè)是我們實(shí)驗(yàn)室做的,基于arm9的,電能質(zhì)量分析儀,…

查看全部問答∨

周一,你能提起精神工作么?

大多的人過了一個(gè)周末后在周一就會(huì)出現(xiàn)不愿起床上班,到了單位也無精打采不能立即投入工作中,大家是這樣么?該如何改變捏??…

查看全部問答∨

請教一個(gè)wince遠(yuǎn)程執(zhí)行程序的問題。

我有一個(gè)觸摸屏,里面的系統(tǒng)是wince3.1,上面有232和485兩種串口,我現(xiàn)在想遠(yuǎn)程執(zhí)行wince里面的一個(gè)程序,請問應(yīng)該如何實(shí)現(xiàn)。我查找了一些資料,似乎rapi可以實(shí)現(xiàn),而且似乎rapi需要activesync,于是我下載了一個(gè)activesync4.5,結(jié)果很不幸,連不上 ...…

查看全部問答∨

第一次上來問問題 務(wù)必解答??!

請問為什么了把文件轉(zhuǎn)成NTFS后還是不能進(jìn)行文件加密?…

查看全部問答∨

CS信號(hào)一直無效,查了CS地址都沒問題,還有可能是什么問題?

往ARM7中的一個(gè)CS地址寫數(shù)據(jù),一直寫不過去,后來發(fā)覺CS信號(hào)一直為高. 確認(rèn)地址沒問題,此CS信號(hào)用GPIO模擬,也確認(rèn)過GPIO的方向,和模式都配置的沒問題,還有什么其他可能的因素?  請高人給出自己的看法,非常的感謝…

查看全部問答∨

WINCE快捷方式問題

編輯了文件tt.lnk內(nèi)容如下 15#\\Windows\\my.exe 確定15#\\Windows\\my.exe后面沒有回車、空格 通過Remote File Viewer傳到Standdard SDK模擬器,雙擊tt.lnk,可以正常運(yùn)行\(zhòng)\Windows\\my.exe 上傳到自己編的模擬器里,雙擊tt.lnk,報(bào)錯(cuò):打開快 ...…

查看全部問答∨

用MAPLAB如何判斷程序已經(jīng)寫入單片機(jī)了?

用MAPLAB如何判斷程序已經(jīng)寫入單片機(jī)了?可以將單片機(jī)的程序讀出來再寫到一個(gè)文件中嗎?…

查看全部問答∨

TI的M4和ST的M4市場定位

M4目前已經(jīng)瘋狂來襲,各家都在大力推進(jìn),但是對比其產(chǎn)品性能還是有很多差別。這里我要說TI的M4定位在低端市場,主要針對目前M3市場的,主頻在80MHZ,后續(xù)后達(dá)到125MHZ,其性價(jià)比來說,強(qiáng)與市場上任何一款M3產(chǎn)品(同級別對比)。ST的M4針對高端一點(diǎn) ...…

查看全部問答∨

哈工大教務(wù)處的題怎么8月28號(hào)就發(fā)了

本帖最后由 paulhyde 于 2014-9-15 03:20 編輯 這是什么個(gè)情況    …

查看全部問答∨
小廣播
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號(hào)

 
EEWorld服務(wù)號(hào)

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號(hào) 京ICP備10001474號(hào)-1 電信業(yè)務(wù)審批[2006]字第258號(hào)函 京公網(wǎng)安備 11010802033920號(hào) Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved