當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀] STC90/89系列內(nèi)部EEPROM放數(shù)據(jù)(C語(yǔ)言)#include#include/*use_nop_()function*///sfr16DPTR=0x82;/*新增特殊功能寄存器定義*/sfrISP_DATA=0xe2;sfrISP_ADDRH=0xe3;sfrISP_ADDRL=0xe4;sfrISP_CMD=0xe5;sf

STC90/89系列內(nèi)部EEPROM放數(shù)據(jù)(C語(yǔ)言)

#include
#include/*use_nop_()function*/

//sfr16DPTR=0x82;

/*新增特殊功能寄存器定義*/
sfrISP_DATA=0xe2;
sfrISP_ADDRH=0xe3;
sfrISP_ADDRL=0xe4;
sfrISP_CMD=0xe5;
sfrISP_TRIG=0xe6;
sfrISP_CONTR=0xe7;

/*定義命令*/
#defineREAD_AP_and_Data_Memory_Command0x01/*字節(jié)讀數(shù)據(jù)存儲(chǔ)區(qū)*/
#definePROGRAM_AP_and_Data_Memory_Command0x02/*字節(jié)編程數(shù)據(jù)存儲(chǔ)區(qū)*/
#defineSECTOR_ERASE_AP_and_Data_Memory_Command0x03/*扇區(qū)擦除數(shù)據(jù)存儲(chǔ)區(qū)*/

typedefunsignedcharINT8U;/*8bit無(wú)符號(hào)整型*/
typedefunsignedintINT16U;/*16bit無(wú)符號(hào)整型*/
#defineDELAY_CONST60000

/*定義常量*/
#defineERROR0
#defineOK1

sbitBegin_LED=P1^0;
sbitERROR_LED=P1^3;
sbitOK_LED=P1^7;

/*定義Flash操作等待時(shí)間*/
#defineMCU_CLOCK_40MHz
//#defineMCU_CLOCK_20MHz
//#defineMCU_CLOCK_10MHz
//#defineMCU_CLOCK_5MHz
#ifdefMCU_CLOCK_40MHz
#defineWAIT_TIME0x00
#endif
#ifdefMCU_CLOCK_20MHz
#defineWAIT_TIME0x01
#endif
#ifdefMCU_CLOCK_10MHz
#defineWAIT_TIME0x02
#endif
#ifdefMCU_CLOCK_5MHz
#defineWAIT_TIME0x03
#endif

/*調(diào)試控制項(xiàng)*/
//#defineDEBUG_STC89C_LE58RD+

#defineDEBUG_STC89C_LE52RC

//#defineUSED_BYTE_QTY_IN_ONE_SECTOR1
//#defineUSED_BYTE_QTY_IN_ONE_SECTOR2
//#defineUSED_BYTE_QTY_IN_ONE_SECTOR4
//#defineUSED_BYTE_QTY_IN_ONE_SECTOR8
//#defineUSED_BYTE_QTY_IN_ONE_SECTOR16
//#defineUSED_BYTE_QTY_IN_ONE_SECTOR32
//#defineUSED_BYTE_QTY_IN_ONE_SECTOR64
#defineUSED_BYTE_QTY_IN_ONE_SECTOR128
//#defineUSED_BYTE_QTY_IN_ONE_SECTOR256
//#defineUSED_BYTE_QTY_IN_ONE_SECTOR512

INT8Uxdataprotect_buffer[USED_BYTE_QTY_IN_ONE_SECTOR];

#ifdefDEBUG_STC89C_LE58RD+//STC89C58RD+,89LE58RD+
#defineDEBUG_AP_Memory_Begin_Sector_addr0x0000
#defineDEBUG_AP_Memory_End_Sector_addr0x7e00
#defineDEBUG_AP_Memory_End_Byte_addr0x7fff

#defineDEBUG_Data_Memory_Begin_Sector_addr0x8000
#endif
#ifdefDEBUG_STC89C_LE52RC//STC89C52RC,89LE52RC
#defineDEBUG_AP_Memory_Begin_Sector_addr0x0000
#defineDEBUG_AP_Memory_End_Sector_addr0x1e00
#defineDEBUG_AP_Memory_End_Byte_addr0x1fff

#defineDEBUG_Data_Memory_Begin_Sector_addr0x2000
#endif


/*打開(kāi)ISP,IAP功能*/
voidISP_IAP_enable(void)
{
EA=0;/*關(guān)中斷*/
ISP_CONTR=ISP_CONTR&0x18;/*0001,1000*/
ISP_CONTR=ISP_CONTR|WAIT_TIME;
ISP_CONTR=ISP_CONTR|0x80;/*1000,0000*/
}

/*關(guān)閉ISP,IAP功能*/
voidISP_IAP_dISAble(void)
{
ISP_CONTR=ISP_CONTR&0x7f;/*0111,1111*/
ISP_TRIG=0x00;
EA=1;/*開(kāi)中斷*/
}

/*字節(jié)讀*/
INT8Ubyte_read(INT16Ubyte_addr)
{
ISP_ADDRH=(INT8U)(byte_addr>>8);
ISP_ADDRL=(INT8U)(byte_addr&0x00ff);

ISP_CMD=ISP_CMD&0xf8;/*1111,1000*/
ISP_CMD=ISP_CMD|READ_AP_and_Data_Memory_Command;/*0000,0001*/

ISP_IAP_enable();

ISP_TRIG=0x46;
ISP_TRIG=0xb9;
_nop_();

ISP_IAP_disable();
return(ISP_DATA);
}

/*扇區(qū)擦除*/
INT8Usector_erase(INT16Usector_addr)
{
INT16Uget_sector_addr=0;
get_sector_addr=(sector_addr&0xfe00);/*1111,1110,0000,0000;取扇區(qū)地址*/
ISP_ADDRH=(INT8U)(get_sector_addr>>8);
ISP_ADDRL=0x00;

ISP_CMD=ISP_CMD&0xf8;/*1111,1000*/
ISP_CMD=ISP_CMD|SECTOR_ERASE_AP_and_Data_Memory_Command;/*0000,0011*/

ISP_IAP_enable();
ISP_TRIG=0x46;/*觸發(fā)ISP_IAP命令*/
ISP_TRIG=0xb9;/*觸發(fā)ISP_IAP命令*/
_nop_();

ISP_IAP_disable();
returnOK;
}

/*字節(jié)編程*/
INT8Ubyte_program(INT16Ubyte_addr,INT8Uoriginal_data)
{
ISP_ADDRH=(INT8U)(byte_addr>>8);
ISP_ADDRL=(INT8U)(byte_addr&0x00ff);

ISP_CMD=ISP_CMD&0xf8;/*1111,1000*/
ISP_CMD=ISP_CMD|PROGRAM_AP_and_Data_Memory_Command;/*0000,0010*/
ISP_DATA=original_data;

ISP_IAP_enable();
ISP_TRIG=0x46;/*觸發(fā)ISP_IAP命令*/
ISP_TRIG=0xb9;/*觸發(fā)ISP_IAP命令*/
_nop_();

ISP_IAP_disable();
returnOK;
}

/*字節(jié)編程并校驗(yàn)*/
INT8Ubyte_program_and_verify(INT16Ubyte_addr,INT8Uoriginal_data)
{
ISP_ADDRH=(INT8U)(byte_addr>>8);
ISP_ADDRL=(INT8U)(byte_addr&0x00ff);

ISP_CMD=ISP_CMD&0xf8;/*1111,1000*/
ISP_CMD=ISP_CMD|PROGRAM_AP_and_Data_Memory_Command;/*0000,0010*/
ISP_DATA=original_data;

ISP_IAP_enable();

ISP_TRIG=0x46;
ISP_TRIG=0xb9;
_nop_();

ISP_DATA=0x00;

ISP_CMD=ISP_CMD&0xf8;/*1111,1000*/
ISP_CMD=ISP_CMD|READ_AP_and_Data_Memory_Command;/*0000,0001*/

ISP_TRIG=0x46;/*觸發(fā)ISP_IAP命令*/
ISP_TRIG=0xb9;/*觸發(fā)ISP_IAP命令*/
_nop_();

ISP_IAP_disable();

if(ISP_DATA==original_data)
returnOK;
else
returnERROR;
}

/*寫(xiě)數(shù)據(jù)進(jìn)數(shù)據(jù)Flash存儲(chǔ)器,只在同一個(gè)扇區(qū)內(nèi)寫(xiě),不保留原有數(shù)據(jù)*/
/*begin_addr,被寫(xiě)數(shù)據(jù)Flash開(kāi)始地址;counter,連續(xù)寫(xiě)多少個(gè)字節(jié);array[],數(shù)據(jù)來(lái)源*/
INT8Usequential_write_flash_in_one_sector(INT16Ubegin_addr,INT16Ucounter,INT8Uarray[])
{
INT16Ui=0;
INT16Uin_sector_begin_addr=0;
INT16Usector_addr=0;

/*判是否是有效范圍,此函數(shù)不允許跨扇區(qū)操作*/
if(counter>USED_BYTE_QTY_IN_ONE_SECTOR)
returnERROR;
in_sector_begin_addr=begin_addr&0x01ff;/*0000,0001,1111,1111*/
if((in_sector_begin_addr+counter)>USED_BYTE_QTY_IN_ONE_SECTOR)
returnERROR;

/*擦除要修改/寫(xiě)入的扇區(qū)*/
sector_addr=(begin_addr&0xfe00);/*1111,1110,0000,0000;取扇區(qū)地址*/
ISP_ADDRH=(INT8U)(sector_addr>>8);
ISP_ADDRL=0x00;
ISP_CMD=ISP_CMD&0xf8;/*1111,1000*/
ISP_CMD=ISP_CMD|SECTOR_ERASE_AP_and_Data_Memory_Command;/*0000,0011*/

ISP_IAP_enable();
ISP_TRIG=0x46;/*觸發(fā)ISP_IAP命令*/
ISP_TRIG=0xb9;/*觸發(fā)ISP_IAP命令*/
_nop_();

for(i=0;i{
/*寫(xiě)一個(gè)字節(jié)*/
ISP_ADDRH=(INT8U)(begin_addr>>8);
ISP_ADDRL=(INT8U)(begin_addr&0x00ff);
ISP_DATA=array[i];
ISP_CMD=ISP_CMD&0xf8;/*1111,1000*/
ISP_CMD=ISP_CMD|PROGRAM_AP_and_Data_Memory_Command;/*0000,0010*/

ISP_TRIG=0x46;/*觸發(fā)ISP_IAP命令*/
ISP_TRIG=0xb9;/*觸發(fā)ISP_IAP命令*/
_nop_();

/*讀回來(lái)*/
ISP_DATA=0x00;

ISP_CMD=ISP_CMD&0xf8;/*1111,1000*/
ISP_CMD=ISP_CMD|READ_AP_and_Data_Memory_Command;/*0000,0001*/

ISP_TRIG=0x46;/*觸發(fā)ISP_IAP命令*/
ISP_TRIG=0xb9;/*觸發(fā)ISP_IAP命令*/
_nop_();

/*比較對(duì)錯(cuò)*/
if(ISP_DATA!=array[i])
{
ISP_IAP_disable();
returnERROR;
}
begin_addr++;
}
ISP_IAP_disable();
returnOK;
}

/*寫(xiě)數(shù)據(jù)進(jìn)數(shù)據(jù)Flash存儲(chǔ)器(EEPROM),只在同一個(gè)扇區(qū)內(nèi)寫(xiě),保留同一扇區(qū)中不需修改的數(shù)據(jù)*/
/*begin_addr,被寫(xiě)數(shù)據(jù)Flash開(kāi)始地址;counter,連續(xù)寫(xiě)多少個(gè)字節(jié);array[],數(shù)據(jù)來(lái)源*/
INT8Uwrite_flash_with_protect_in_one_sector(INT16Ubegin_addr,INT16Ucounter,INT8Uarray[])
{
INT16Ui=0;
INT16Uin_sector_begin_addr=0;
INT16Usector_addr=0;
INT16Ubyte_addr=0;

/*判是否是有效范圍,此函數(shù)不允許跨扇區(qū)操作*/
if(counter>USED_BYTE_QTY_IN_ONE_SECTOR)
returnERROR;
in_sector_begin_addr=begin_addr&0x01ff;/*0000,0001,1111,1111*/
/*假定從扇區(qū)的第0個(gè)字節(jié)開(kāi)始,到USED_BYTE_QTY_IN_ONE_SECTOR-1個(gè)字節(jié)結(jié)束,后面部分不用,程序易編寫(xiě)*/
if((in_sector_begin_addr+counter)>USED_BYTE_QTY_IN_ONE_SECTOR)
returnERROR;

/*將該扇區(qū)數(shù)據(jù)0-(USED_BYTE_QTY_IN_ONE_SECTOR-1)字節(jié)數(shù)據(jù)讀入緩沖區(qū)保護(hù)*/
sector_addr=(begin_addr&0xfe00);/*1111,1110,0000,0000;取扇區(qū)地址*/
byte_addr=sector_addr;/*扇區(qū)地址為扇區(qū)首字節(jié)地址*/

ISP_IAP_enable();
for(i=0;i{
ISP_ADDRH=(INT8U)(byte_addr>>8);
ISP_ADDRL=(INT8U)(byte_addr&0x00ff);

ISP_CMD=ISP_CMD&0xf8;/*1111,1000*/
ISP_CMD=ISP_CMD|READ_AP_and_Data_Memory_Command;/*0000,0001*/

ISP_TRIG=0x46;
ISP_TRIG=0xb9;
_nop_();

protect_buffer[i]=ISP_DATA;
byte_addr++;
}

/*將要寫(xiě)入的數(shù)據(jù)寫(xiě)入保護(hù)緩沖區(qū)的相應(yīng)區(qū)域,其余部分保留*/
for(i=0;i{
protect_buffer[in_sector_begin_addr]=array[i];
in_sector_begin_addr++;
}

/*擦除要修改/寫(xiě)入的扇區(qū)*/
ISP_ADDRH=(INT8U)(sector_addr>>8);
ISP_ADDRL=0x00;
ISP_CMD=ISP_CMD&0xf8;/*1111,1000*/
ISP_CMD=ISP_CMD|SECTOR_ERASE_AP_and_Data_Memory_Command;/*0000,0011*/

ISP_TRIG=0x46;/*觸發(fā)ISP_IAP命令*/
ISP_TRIG=0xb9;/*觸發(fā)ISP_IAP命令*/
_nop_();

/*將保護(hù)緩沖區(qū)的數(shù)據(jù)寫(xiě)入DataFlash,EEPROM*/
byte_addr=sector_addr;/*扇區(qū)地址為扇區(qū)首字節(jié)地址*/
for(i=0;i{
/*寫(xiě)一個(gè)字節(jié)*/
ISP_ADDRH=(INT8U)(byte_addr>>8);
ISP_ADDRL=(INT8U)(byte_addr&0x00ff);
ISP_DATA=protect_buffer[i];
ISP_CMD=ISP_CMD&0xf8;/*1111,1000*/
ISP_CMD=ISP_CMD|PROGRAM_AP_and_Data_Memory_Command;/*0000,0010*/

ISP_TRIG=0x46;/*觸發(fā)ISP_IAP命令*/
ISP_TRIG=0xb9;/*觸發(fā)ISP_IAP命令*/
_nop_();

/*讀回來(lái)*/
ISP_DATA=0x00;

ISP_CMD=ISP_CMD&0xf8;/*1111,1000*/
ISP_CMD=ISP_CMD|READ_AP_and_Data_Memory_Command;/*0000,0001*/

ISP_TRIG=0x46;/*觸發(fā)ISP_IAP命令*/
ISP_TRIG=0xb9;/*觸發(fā)ISP_IAP命令*/
_nop_();

/*比較對(duì)錯(cuò)*/
if(ISP_DATA!=protect_buffer[i])
{
ISP_IAP_disable();
returnERROR;
}
byte_addr++;
}
ISP_IAP_disable();
returnOK;
}

/*測(cè)試常量數(shù)組*/
INT8UcodeTest_array_total[512]=
{
0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,
0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,
0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,
0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,
0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,
0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,
0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,
0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,
0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,
0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,
0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,
0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,
0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,
0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,
0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,
0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,
0xc8,0xc9,0xca,0xcb,0xCC,0xcd,0xce,0xcf,
0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,
0xd8,0xd9,0xda,0xdb,0xdc,0xdd,0xde,0xdf,
0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,
0xe8,0xe9,0xea,0xeb,0xec,0xed,0xee,0xef,
0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,
0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff,
0xff,0xfe,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,
0xf7,0xf6,0xf5,0xf4,0xf3,0xf2,0xf1,0xf0,
0xef,0xee,0xed,0xec,0xeb,0xea,0xe9,0xe8,
0xe7,0xe6,0xe5,0xe4,0xe3,0xe2,0xe1,0xe0,
0xdf,0xde,0xdd,0xdc,0xdb,0xda,0xd9,0xd8,
0xd7,0xd6,0xd5,0xd4,0xd3,0xd2,0xd1,0xd0,
0xcf,0xce,0xcd,0xcc,0xcb,0xca,0xc9,0xc8,
0xc7,0xc6,0xc5,0xc4,0xc3,0xc2,0xc1,0xc0,
0xbf,0xbe,0xbd,0xbc,0xbb,0xba,0xb9,0xb8,
0xb7,0xb6,0xb5,0xb4,0xb3,0xb2,0xb1,0xb0,
0xaf,0xae,0xad,0xac,0xab,0xaa,0xa9,0xa8,
0xa7,0xa6,0xa5,0xa4,0xa3,0xa2,0xa1,0xa0,
0x9f,0x9e,0x9d,0x9c,0x9b,0x9a,0x99,0x98,
0x97,0x96,0x95,0x94,0x93,0x92,0x91,0x90,
0x8f,0x8e,0x8d,0x8c,0x8b,0x8a,0x89,0x88,
0x87,0x86,0x85,0x84,0x83,0x82,0x81,0x80,
0x7f,0x7e,0x7d,0x7c,0x7b,0x7a,0x79,0x78,
0x77,0x76,0x75,0x74,0x73,0x72,0x71,0x70,
0x6f,0x6e,0x6d,0x6c,0x6b,0x6a,0x69,0x68,
0x67,0x66,0x65,0x64,0x63,0x62,0x61,0x60,
0x5f,0x5e,0x5d,0x5c,0x5b,0x5a,0x59,0x58,
0x57,0x56,0x55,0x54,0x53,0x52,0x51,0x50,
0x4f,0x4e,0x4d,0x4c,0x4b,0x4a,0x49,0x48,
0x47,0x46,0x45,0x44,0x43,0x42,0x41,0x40,
0x3f,0x3e,0x3d,0x3c,0x3b,0x3a,0x39,0x38,
0x33,0x36,0x35,0x34,0x33,0x32,0x31,0x30,
0x2f,0x2e,0x2d,0x2c,0x2b,0x2a,0x29,0x28,
0x27,0x26,0x25,0x24,0x23,0x22,0x21,0x20,
0x1f,0x1e,0x1d,0x1c,0x1b,0x1a,0x19,0x18,
0x17,0x16,0x15,0x14,0x13,0x12,0x11,0x10,
0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,
0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00
};

voiddisplay_Begin_LED(void)
{
Begin_LED=0;/*Begin_LEDon*/
}
voidoff_Begin_LED(void)
{
Begin_LED=1;/*Begin_LEDoff*/
}
voiddisplay_OK_LED(void)
{
OK_LED=0;/*OK_LEDon*/
}
voidoff_OK_LED(void)
{
OK_LED=1;/*OK_LEDoff*/
}

voiddisplay_ERROR_LED(void)
{
ERROR_LED=0;/*ERROR_LEDon*/
}
voidoff_ERROR_LED(void)
{
ERROR_LED=1;/*ERROR_LEDoff*/
}

voiddelay(INT16Ucounter)
{
INT16Utemp=0;
for(temp=counter;temp>0;temp--)
{
_nop_();
_nop_();
_nop_();
}
}

voidmain()
{
//sbitBegin_LED=P1^0;
//sbitERROR_LED=P1^3;
//sbitOK_LED=P1^7;

display_Begin_LED();
delay(DELAY_CONST);

sector_erase(DEBUG_Data_Memory_Begin_Sector_addr);
if(byte_program_and_verify(DEBUG_Data_Memory_Begin_Sector_addr,0x55)==OK)
display_OK_LED();
else
display_ERROR_LED();

/*
if(sequential_write_flash_in_one_sector(DEBUG_Data_Memory_Begin_Sector_addr,USED_BYTE_QTY_IN_ONE_SECTOR,Test_array_total))
display_OK_LED();
else
display_ERROR_LED();
*/
/*
if(write_flash_with_protect_in_one_sector(DEBUG_Data_Memory_Begin_Sector_addr+0x3,USED_BYTE_QTY_IN_ONE_SECTOR-0x30,Test_array_total))
display_OK_LED();
else
display_ERROR_LED();
*/
while(1);
}

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉