CS8900+s3c2410 Internet disconnection problem and its solution
My understanding is that when the system is running the network, it often enables network interruption, causing the network to reset.
Find E:\WINCE420\WINCE420\PLATFORM\SMDK2410\KERNEL\HAL\cfw.c
and find BOOL OEMInterruptEnable() function case SYSINTR_ETHER:
Make the network card initialization appear only once, because after each initialization, the connection will be disconnected
Add a global variable Inited == FALSE
case SYSINTR_ETHER: // Ethernet on EINT9.
if(Inited == FALSE) // edit by andy
{
s2410IOP->rEINTPEND = 0x200;
s2410INT->rSRCPND = BIT_EINT8_23; // by shim
if (s2410INT->rINTPND & BIT_EINT8_23)
s2410INT->rINTPND = BIT_EINT8_23;
Inited = TRUE;
}
s2410IOP->rE INTMASK &= ~0x200;
s2410INT ->rINTMSK &= ~BIT_EINT8_23;
break;
http://hi.baidu.com/fei_chen/blog/item/c961e933ff04d342ac4b5f3c.html
Solution to the network problem of s3c2410+cs8900 board under WINCE
The network ping connection under WINCE is disconnected after a while. The fundamental reason for the solution
is that the interrupt flag that has been generated is cleared in the interrupt processing service!
In this way, an interrupt is lost. Because the interrupt is configured as a rising edge trigger in the original driver! Once an interrupt is lost, the interrupt signal will not jump again, because the next interrupt will only be generated after the interrupt status queue register of cs8900 is read in the interrupt service! (See the explanation about INTRQ on page 14 of the cs8900 datasheet!
As to why, the original driver clears the interrupt flag that has been generated! You can track the process of turning on and off interrupts in the interrupt service of the cs8900 driver! Solve the problem of network disconnection on the cs8900+s3c2410+wince platform!
if(Inited == FALSE) s2410IOP->rEINTPEND = 0x200; s2410INT->rSRCPND = BIT_EINT8_23; // by shim
if (s2410INT->rINTPND & BIT_EINT8_23) s2410INT->rINTPND = BIT_EINT8_23; Inited = TRUE; s2410IOP->rEINTMASK &= ~0x200; s2410INT->rINTMSK &= ~BIT_EINT8_23; break; Global definition: BOOL Inited = FALSE; After this modification! You may need to recompile everything, clean and then rebuild! ! Test the network again! There will be no problem!
Repost, tested correctly
Solution:
Find E:\WINCE420\WINCE420\PLATFORM\SMDK2410\KERNEL\HAL\cfw.c
and find BOOL OEMInterruptEnable() function case SYSINTR_ETHER:
if(Inited == FALSE)
{
s2410IOP->rEINTPEND = 0x200;
s2410INT->rSRCPND = BIT_EINT8_23; // by shim
if (s2410INT->rINTPND & BIT_EINT8_23)
s2410INT->rINTPND = BIT_EINT8_23;
Inited = TRUE;
}
s2410IOP->rEINTMASK &= ~0x200;
s2410INT->rINTMSK &= ~BIT_EINT8_23;
break;
Define globally: BOOL Inited = FALSE;
Previous article:The spca5xx driver is loaded into the S3C2410 board
Next article:ucos II+ucGUI+s3c2410+LCD+touch screen integration
- Popular Resources
- Popular amplifiers
- Naxin Micro and Xinxian jointly launched the NS800RT series of real-time control MCUs
- How to learn embedded systems based on ARM platform
- Summary of jffs2_scan_eraseblock issues
- Application of SPCOMM Control in Serial Communication of Delphi7.0
- Using TComm component to realize serial communication in Delphi environment
- Bar chart code for embedded development practices
- Embedded Development Learning (10)
- Embedded Development Learning (8)
- Embedded Development Learning (6)
Professor at Beihang University, dedicated to promoting microcontrollers and embedded systems for over 20 years.
- Intel promotes AI with multi-dimensional efforts in technology, application, and ecology
- ChinaJoy Qualcomm Snapdragon Theme Pavilion takes you to experience the new changes in digital entertainment in the 5G era
- Infineon's latest generation IGBT technology platform enables precise control of speed and position
- Two test methods for LED lighting life
- Don't Let Lightning Induced Surges Scare You
- Application of brushless motor controller ML4425/4426
- Easy identification of LED power supply quality
- World's first integrated photovoltaic solar system completed in Israel
- Sliding window mean filter for avr microcontroller AD conversion
- What does call mean in the detailed explanation of ABB robot programming instructions?
- STMicroelectronics discloses its 2027-2028 financial model and path to achieve its 2030 goals
- 2024 China Automotive Charging and Battery Swapping Ecosystem Conference held in Taiyuan
- State-owned enterprises team up to invest in solid-state battery giant
- The evolution of electronic and electrical architecture is accelerating
- The first! National Automotive Chip Quality Inspection Center established
- BYD releases self-developed automotive chip using 4nm process, with a running score of up to 1.15 million
- GEODNET launches GEO-PULSE, a car GPS navigation device
- Should Chinese car companies develop their own high-computing chips?
- Infineon and Siemens combine embedded automotive software platform with microcontrollers to provide the necessary functions for next-generation SDVs
- Continental launches invisible biometric sensor display to monitor passengers' vital signs
- Today's broadcast starts at 10:00: Introduction to Littelfuse's SiC MOSFET and Schottky diode products and related applications
- [Me and Arty 2] AT32 transplant threadX and its awesome component GUIX
- TI official website cannot be accessed! ? ?
- Everyone, is it harder to be a hardware engineer or a software engineer?
- How to use arrays in C language for microcontrollers
- [GD32L233C-START Review] 17. CMSIS-RTOS2 RTX5 ported to GD32L233 (kernel, multithreading)
- Switching power supply interest group recruitment, just for learning switching power supply! Ps: People without perseverance please bypass!
- [Perf-V Review] Pengfeng Development Board Unboxing Experience
- Download the topics of the National Undergraduate Electronic Design Competition over the years
- Regarding the abnormal problem of nrf52810 sending and receiving multiple times, I hope the experts can help