Feb 11

Hua Heng COLDFIRE series embedded LINUX Development Kit FAQ

Posted by Tiny at 22:56 | Default | Comments(0) | Reads(82) | From Original Large | Medium | Small
CXX = $(CROSS_COMPILE)g
CXX = $(CROSS_COMPILE)g


------------- -------------------------------------------------- -----------------

movec ?, %VBR


CXX = $(CROSS_COMPILE)g   $(CPUFLAGS) -DCONFIG_COLDFIRE



move.l -(?), ? } Copy dword }
.


mainly to the Ethernet card installed, the common RTL8139 network card, REDHAT7.2 can automatically identify and automatically installed, users do not fully participate in, it is proposed to use the card. and then Configuration host IP:
clr.l ? } Set value }
}
For REDHAT7.2, it's the default is to open a firewall, so the external IP has refused to visit it, so that other network equipment can not access it, that is, it can not be NFS mount, can not download it from the TFTP can not telnet, ftp it, and so on. After the installation of the network, therefore, should immediately turn off the firewall. Operation as follows:
run the setup, select Firewall configuration, select No firewall. And then on to a menu to choose System services, and remove ipchains two iptables service. Finally, from the setup.


In fact, the installation REDHAT7.2 / 3, the Custom option requires custom installation, which is requested by a select No Firewall, this is the case, after the start, you do not need to setup the implementation of the firewall settings. There are, REDHAT here to have a BUG, that is, no matter Firewall configuration into the last time you choose, every time when it once again into the show High, this is REDHAT shown BUG, in fact firewall has been closed.


}


run linuxconf, in the next election config option Server tasks, select Exported File systems (NFS), and then select Add Directory, adding the root / and then Accept. Output root system will allow NFS mount.
the next step and then choose Control of the following Control panel under the Control Service activity, and then choose nfs enabled, and then start. After a good configuration interface which shows nfs must: Automatic Running.
}
CXX = $(CROSS_COMPILE)g
Finally, the following item in Control under the Control panel select Activate configuration, while pop-up interface, the system configuration tips The changes, select "Do it", when out of the final completion of the NFS configuration.
CXX = $(CROSS_COMPILE)g
} } if (idx < 1 << (TVR_BITS   TVN_BITS)) }
clr.l ? } Set value }
make menuconfig Loadable module support --- >
.


.
}


Huaheng uClinux install software CD-ROM, not to make xconfig, you can make directly. Join the drive to amend, and other core operations are not required to make xconfig, unless you want to change processor platforms, such as the MCF5407 to the transplant, and so on need to make xconfig. In fact, however, this operation is to amend the linux / .config and linux / include / linux / autoconfig.h in the macro setting. Can be completed by hand.


move.l ?, -(?)
}


CXX = $(CROSS_COMPILE)g



movec ?, %VBR
.
CXX = $(CROSS_COMPILE)g
inux -D__linux__ -Dunix -DEMBED -O2 -msoft -float
clr.l ? } Set value }


.
move.l #MEM_SIZE, ?
move.l #MEM_SIZE, ?
move.l #MEM_SIZE, ?
genromfs}/ usr/local/bin/genromfs}
p = inittab   numcmd  ;


Read 1004740 bytes (1963 blocks)  this is a key issue, in front of useless information, read here as long as the number of bytes and the host / tftpboot / directory image.bin the size of the file on the same show TFTP to download a success!  
>>>>>>>>>> Init mflash
>>>>>>>>>> Init mflash Successfully
cmp.l ?, ? } Check if at end }
CXX = $(CROSS_COMPILE)g
CXX = $(CROSS_COMPILE)g
clr.l ? } Set value }
}(volatile unsigned long })(MCF_MBAR 0x20) |= 0x00800000;
}(volatile unsigned long })(MCF_MBAR 0x20) |= 0x00800000;
}(volatile unsigned long })(MCF_MBAR 0x20) |= 0x00800000;
}(volatile unsigned long })(MCF_MBAR 0x20) |= 0x00800000;
}(volatile unsigned long })(MCF_MBAR 0x20) |= 0x00800000;
} }}}}}}}}} Sector 7 [FFC40000] (0-unprotect, 1 protect):0
} }}}}}}}}} Sector 7 [FFC40000] (0-unprotect, 1 protect):0
}}}}}}}}}} Sector 0 [FFC00000] (0-unprotect, 1 protect) :0
}}}}}}}}}} Sector 0 [FFC00000] (0-unprotect, 1 protect) :0
}}}}}}}}}} Sector 0 [FFC00000] (0-unprotect, 1 protect) :0
}}}}} }}}}} Sector 11 [FFC80000] (0-unprotect, 1 protect):0
}}} }}}}}}} Sector 13 [FFCA0000] (0-unprotect, 1 protect):0
}}} }}}}}}} Sector 13 [FFCA0000] (0-unprotect, 1 protect):0
} }}}}}}}}} Sector 15 [FFCC0000] (0-unprotect, 1 protect):0
} }}}}}}}}} Sector 15 [FFCC0000] (0-unprotect, 1 protect):0
}}}}}}}}}} Sector 18 [FFCF0000] (0-unprotect, 1 protect) :0
}}}}}}}}}} Sector 18 [FFCF0000] (0-unprotect, 1 protect) :0
}}}}}}}}}} Sector 18 [FFCF0000] (0-unprotect, 1 protect) :0
}} }}}}}}}} Sector 5 [FFC20000] (0-unprotect, 1 protect):0
}} }}}}}}}} Sector 5 [FFC20000] (0-unprotect, 1 protect):0
}} }}}}}}}} Sector 5 [FFC20000] (0-unprotect, 1 protect):0
}} }}}}}}}} Sector 5 [FFC20000] (0-unprotect, 1 protect):0
}} }}}}}}}} Sector 5 [FFC20000] (0-unprotect, 1 protect):0
#cat $(IMAGEDIR)/linux.bin.gz $(ROMFSIMG) > $( IMAGE)  
#cat $(IMAGEDIR)/linux.bin.gz $(ROMFSIMG) > $( IMAGE)  
#cat $(IMAGEDIR)/linux.bin.gz $(ROMFSIMG) > $( IMAGE)  
#cat $(IMAGEDIR)/linux.bin.gz $(ROMFSIMG) > $( IMAGE)  
#cat $(IMAGEDIR)/linux.bin.gz $(ROMFSIMG) > $( IMAGE)  
}}}}}}}}}} Sector 30 [FFDB0000] (0-unprotect, 1 protect) :0
}}}}}}}}}} Sector 30 [FFDB0000] (0-unprotect, 1 protect) :0
int i = (expires >> (TVR_BITS   TVN_BITS))  and  TVN_MASK;
int i = (expires >> (TVR_BITS   TVN_BITS))  and  TVN_MASK;
int i = (expires >> (TVR_BITS   TVN_BITS))  and  TVN_MASK;
}} }}}}}}}} Sector 34 [FFDF0000] (0-unprotect, 1 protect):0
}}}}} }}}}} Sector 11 [FFC80000] (0-unprotect, 1 protect):0
}(volatile unsigned long })(MCF_MBAR 0x20) |= 0x00800000;
}(volatile unsigned long })(MCF_MBAR 0x20) |= 0x00800000;
}(volatile unsigned long })(MCF_MBAR 0x20) |= 0x00800000;
}(volatile unsigned long })(MCF_MBAR 0x20) |= 0x00800000;
}(volatile unsigned long })(MCF_MBAR 0x20) |= 0x00800000;
}(volatile unsigned long })(MCF_MBAR 0x20) |= 0x00800000;
}(volatile unsigned long })(MCF_MBAR 0x20) |= 0x00800000;
}(volatile unsigned long })(MCF_MBAR 0x20) |= 0x00800000;
}(volatile unsigned long })(MCF_MBAR 0x20) |= 0x00800000;
}(volatile unsigned long })(MCF_MBAR 0x20) |= 0x00800000;
}}}}} }}}}} Sector 11 [FFC80000] (0-unprotect, 1 protect):0
}}}}} }}}}} Sector 11 [FFC80000] (0-unprotect, 1 protect):0
}}}}} }}}}} Sector 11 [FFC80000] (0-unprotect, 1 protect):0
}}}}} }}}}} Sector 11 [FFC80000] (0-unprotect, 1 protect):0
}}}}} }}}}} Sector 11 [FFC80000] (0-unprotect, 1 protect):0
}}}}} }}}}} Sector 11 [FFC80000] (0-unprotect, 1 protect):0
}}}}} }}}}} Sector 11 [FFC80000] (0-unprotect, 1 protect):0
}}}}} }}}}} Sector 11 [FFC80000] (0-unprotect, 1 protect):0
}}}}} }}}}} Sector 11 [FFC80000] (0-unprotect, 1 protect):0
CXX = $(CROSS_COMPILE)g
.


}
move.l ?, _rambase } Set up base RAM addr }
}}}}}}}}}} Sector 0 [FFC00000] If the message queue have been removed after the N 000 to send or retrieve the process, there will be problems
move.l #VBR_BASE, ? } Note VBR can't be read }


in the minicom Use ctrl a, then b, then use the arrow up and down, you can look at the front of the information to see what mistakes. For example, TFTP failed to connect the information before it is necessary to turn to view the information as follows:
CXX = $(CROSS_COMPILE)g
lea init_task_union, ?
move.l #MEM_SIZE, ?
lea init_task_union, ?


}
movec ?, ?CR } Invalidate cache }
}
move.l #MEM_SIZE, ?
load that is a small software download (tftp.elf, about 80K) to the board of RAM, and c (continue) command to run it, CPU time by the small software to take over. The small software up and running after the initialization and Ethernet TFTP protocol stack, and then run it TFTP client, from memory 0x00200004 (2M +4 Department) gdb to read the script here on the IP address of the TFTP server from the IP The TFTP server PC to download 1M of memory image.bin board to address, then its programming to FLASH, the resumption of the board, this time together guiding is a LINUX.



make menuconfig Loadable module support --- >
move.l #MEM_SIZE, ?
19.  C  
rpm -i linuxconf-1.25r7-3.i386.rpm  6995KB
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and / or distribute copies of it under certain conditions.
4 makefile msg  -> libc.a ;
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as" - host = i686-pc-linux-gnu - target = m68k-bdm-elf "...



This is the PC side BDM drive (linux-bdm.o), to be installed Right drive (CD offered by Hua Heng, for example). CTRL C by the end of the process, with rmmod linux-bdm to delete the current drive, insmod to install the correct version of the re-implementation of the driver. / Flash can be.



movec ?, %VBR
[ -d $ (IMAGEDIR) ] || mkdir -p $(IMAGEDIR)
CXX = $(CROSS_COMPILE)g
movec ?, %VBR <asm_exception_handler+4>year  = 100;
1) TIMER  ICR1 0xd priority == 5 2.0.38 TMR1 2.4 TMR4



lea 0x2000(?), %sp
. / Gdb: error while loading shared libraries: libncurses.so.4: cannot load shared object file: No such file or directory.
.


A: This is the result of REDHAT host installation incomplete and does not support DEVELOPMENT tools such as gcc, gdb, and other tools, the system has not led to the installation of these tools needed to run the library to share. Full recommendation to re-install the system.



year  = 100;
In fact, TFTP server can be connected to the board and the local area network within the opening of a random TFTP services LINUX PC, which can be from any board TFTP server and download files IMAGE programming, of course, we must first check whether the IP and match Connection is correct. However, if the host LINUX (that is, to use serial lines that connect the Taiwan LINUX PC) opened at the same time TFTP services, so do not have to take up multiple machines. Full install by default after REDHAT the TFTP service is not open, to open their own hand.


CXX = $(CROSS_COMPILE)g
move.l ?, -(?)
}} }}}}}}}} Sector 5 [FFC20000] (0-unprotect, 1 protect):0
for REDHAT7.2, in the host on the implementation of setup, select System services, which will select a tftp (appear [}] that is selected), and removed two ipchains and iptables service (that is, removed } In front of them). And then also choose Firewall configuration, select No firewall. Finally, from the setup, the following command to start the implementation of the TFTP service:
move.l #MEM_SIZE, ?
15.  BDM  kernel- module version mismatch
}
[ -d $ (IMAGEDIR) ] || mkdir -p $(IMAGEDIR)
movec ?, %VBR
tftp>get image.bin
.
C   user
CXX = $(CROSS_COMPILE)g   $(CPUFLAGS) -DCONFIG_COLDFIRE
}}          
move.l ?, -(?)
CXX = $(CROSS_COMPILE)g



19.  C  
clr.l ? } Set value }
move.l #MEM_SIZE, ?
make menuconfig Loadable module support --- >


/ sbin / insmod / HHCO5272-R1/bdm/linux-bdm.o, so each PC Will start automatically, or every time you start the implementation of these places have a host
lea.l _sbss, ? } Get start of bss }
}
make menuconfig Loadable module support --- >


cmp.l ?, ? } Check if at end }



move.l ?, _ramstart } Set start of ram }
CXX = $(CROSS_COMPILE)g


software from the user's point of view, the play BDM, the core of the board of the reset button on the failure, the board did not receive power after the reset signal, the board could not be activated. Board at this time to allow the board to start running the software system, you can implement chk, and then immediately withdraw from the board would then automatically restart.
}
}
>>>x
when the board started, minicom can receive orders, will have to restart direct Minicom type in the next reboot to restart, according to the reset button at this time is invalid. BDM is not inserted the board reset button is effective.



year  = 100;


lea init_task_union, ?
}
} } if (idx < 1 << (TVR_BITS   3 } TVN_BITS )) }


genromfs}/ usr/local/bin/genromfs}


.
board to determine whether the death is not the standard minicom can enter, and so on, the most credible standard is to see the core board to run the light still blinking normal, if not a flash, no doubt kill. Serial port can sometimes print output, but users can not enter an order, this is often due to high electricity operator in the hands led to the unusual work of the serial. At this time recommendations to the board power to the core and bottom plate as well as the serial line and so on, coupled with the power to re-plug you try to restart; or replacement of a PC, or use the Internet telnet terminal.


movec ?, %VBR
p = inittab   numcmd  ;


C   5272 uclinux config.arch  


movec ?, %VBR
move.l ?, -(?)
for HHCF5272-LCD-IDE-R1, will cover colilo.bin annex to the uClinux / colilo / Directory and re-programming can be compiled.
genromfs}/ usr/local/bin/genromfs}
}


}


movec ?, %VBR
clr.l ? } Set value }
move.l #MEM_SIZE, ?
lea.l _ebss, ? } Get end of bss }


move.l #MEM_SIZE, ?



move.l ?, -(?)
CXX = $(CROSS_COMPILE)g


movec ?, ?CR } Enable cache }


movec ?, %VBR
CXX = $(CROSS_COMPILE)g
m68k-elf-objdump -D linux >tt
}
move.l #MEM_SIZE, ?
.



: orib #84,?
CXX = $(CROSS_COMPILE)g
CXX = $(CROSS_COMPILE)g


.
icrp = (volatile unsigned long }) (MCF_MBAR   MCFSIM_ICR1);
} } if (idx < 1 << (TVR_BITS   3 } TVN_BITS )) }


: usb general population d d_ only two signal lines, and 5272 turn out to increase the signal line: usb-rp, usb-tp ....( pa (6:0)), the user can use the first of its function?
answer: 5272 with its own usb Transceiver, the 5272 lets you choose whether or not to choose an external usb transceiver (through the internal configuration register to select). Selection of the proposed external USB transceiver. Attention! Transceiver is not controllers! USB controller in 5272 inside.
   Note cn5, cn6 just do a simple expansion, and you can design their own floor (Hua Heng floor in the manual have been there a schematic!), Which in cn1, cn2, cn3 the use of signals. cn1, cn2, cn3 pin on the signal corresponding to the schematic have. Cn1 in which the address line of 1 to 45 (odd feet), data line cn2 in the 2 to 64 (even feet). ddat [3:0] and DTEA are cn3, is used to access the mouth of BDM. Please refer to the use of specific processor 5272 manual.
USB [3:1] is a pin From an external USB transceiver chip pdiusb11 then on out. TX_P ~ RX_N and Ethernet isolation transformer is the output line. Cpuclk the frequency of 66Mhz, no driver.



.


MCF5272 to provide a total of 48 general IO pin, which can be divided into 3 16-bit PORT, that is, PORTA, PORTB, PORTC. One PORTA, PORTB corresponding control to register with the other signal pin multiplexing. Port C does not register PCCNT, it can only work for the bus outside the 16-bit mode as a 16-bit I / O line I used, that is, with D [0 ~ 15] reuse, and only 16-bit external bus mode Because only 16-bit high-D [16 ~ 31], then D [0 ~ 15] for PC [0 ~ 15]. Another port Port D can not be used as I / O line.
CXX = $(CROSS_COMPILE)g
CXX = $(CROSS_COMPILE)g
if ((year  = 1900) < 1970)
CXX = $(CROSS_COMPILE)g
CN5 p19,p23,p25
CXX = $(CROSS_COMPILE)g
if ((year  = 1900) < 1970)


.
} } if (idx < 1 << (TVR_BITS   3 } TVN_BITS )) }
}
>>>fr colilo2.bin e00000  RAM 0x00e00000
>>>fg xx e00400  0x00e00400 0x400 1024 ramvect
code to the next board RAM, and then fg to go up after the activation, CPU from the control of the code, then do not enter any chk in the order. Chk not to run out of (x), otherwise the board immediately reset, to download the contents of the RAM on the lost. Fg not   attention before the core of the board running lights (LEDK1) is not flash of light. Once fg xx e00400 after the light should flash up. This is to determine whether or not to download software to run up the only criterion, and whether or not to print the serial has nothing to do. If minicom not print information, 2 serial ports that can only be bad.



19.  C  
CXX = $(CROSS_COMPILE)g   $(CPUFLAGS) -DCONFIG_COLDFIRE


  board when the cable plug, the core of the on-board Fast Ethernet connection and a collision indicator (LEDL2) will light up if the board at this time ping a PC machine or a PC board the plane, then ping , LEDL2 will light up and flicker. LEDL2 if it does not shine, may be due to poor access to the Ethernet jack, forced to play tight.
  HHCO5272-R1 provides 2 serial ports can be used for dial-up MODEM, the need to uClinux / user / pppd /, chat / and diald / adding three compiled directory, and the preparation of a dial-up script and the right profile. Hua Heng dial-up PPP to provide a complete package.
  HHCO5272-R1 is used on-board ROMFS file system, which is read-only. JFFS/JFFS2 support can be extended file system, it can be to write readable. Huaheng JFFS/JFFS2 to provide comprehensive support package.


  with ddd-5272 debugging applications, if not see the code, because there was no increase Compiler of the parameters-g; to see if the code, but in the run When prompted BDM not Open! This is the run command, not to use run-time run, and continue with the order, that is, c.


CXX = $(CROSS_COMPILE)g


uClinux/romfs/etc/rc WINDOWS98 autoexec.bat shell WEB SERVER boa boa rc boa& uClinux make . }


.


can use ifconfig / route (2.4 kernel do not need to route orders) order to modify the board after the start of the IP, but this can not be modified after the restart to preserve. IP board because of its ROMFS specified in the file system / etc / rc file specified as follows:


CXX = $(CROSS_COMPILE)g


CXX = $(CROSS_COMPILE)g


to be a permanent change in the board of IP, it is necessary to modify the host on uClinux / romfs / etc / rc file corresponding to the IP settings, and then re-compiled under uClinux, and then re-programming. But this problem is not possible to amend the dynamic IP and save. To achieve this function, it is necessary to achieve the board in the storage documentation features. There are many mechanisms to achieve such flatfsd, JFFS/JFFS2 file system, and so on. The board on the storage mechanism, Hua Heng JFFS/JFFS2 provide a complete package sales, can greatly accelerate the development of the user's progress and time to market.


.


customer asked: HHCF5272-LCD-IDE - R1 package: image.bin wrote to flash, should be able to start from the board into the uClinux, but it is a mistake kernel panic attempted to kill init!


movec ?, %VBR
}
4 makefile msg  -> libc.a ;
CXX = $(CROSS_COMPILE)g



.


}


a simple test procedures to / dev/ttyS0 to send data, 38,400 baud rate is set in the PC machine successfully received. 5272 to develop the use of on-board serial port 1 to send, on the other side in the minicom, the same as the baud rate, to be able to receive data, but the same procedure, only to revise / dev/ttyS1 does not receive any data,
CXX = $(CROSS_COMPILE)g
CXX = $(CROSS_COMPILE)g
-fno-builtin -msep -data -Wl,-elf2flt -o ping ping.o
.
if (console_device and and strcmp (console_device, "/ dev / null"))



year  = 100;
move.l -(?), ? } Copy dword }
: orib #84,?
CXX = $(CROSS_COMPILE)g
movec ?, %VBR
.
lea.l _sbss, ? } Get start of bss }
}


}
movec ?, %VBR



-fno-builtin -msep -data -Wl,-elf2flt -o ping ping.o


}
lea.l _sbss, ? } Get start of bss }
and.l #0xfffffffc, ? } Whole words }



HHCF5272-R2 uClinux  malloc 2048000
CXX = $(CROSS_COMPILE)g   $(CPUFLAGS) -DCONFIG_COLDFIRE


uClinux/linux/arch/m68knommu/ kernel/time.c:
} } if (idx < 1 << (TVR_BITS   2 } TVN_BITS)) }
move.l -(?), ? } Copy dword }


}


: orib #84,?
.
.
move.l ? , ? } Mem end addr is in a0 }
CFLAGS =-Wall-g-O-pipe -I/usr/src/linux-2.4.5/include-I ..-DMODULE-D__KERNEL__ $ (MODVERSIONS)


move.l ?, -(?)



CFLAGS  = -DFLOATS=1


lea.l _ebss, ? } Set up destination }
genromfs}/ usr/local/bin/genromfs}
only HHCF5272-R1 also retained The kernel version 2.0.38, all other packages for the kernel 2.4. HHCF5272-R1 is currently able to provide the 2.4 kernel.
CXX = $(CROSS_COMPILE)g
int i = (expires >> (TVR_BITS   2 } TVN_BITS))  and  TVN_MASK;
lea.l _ebss, ? } Get end of bss }
if ((year  = 1900) < 1970)
attention: System on board sent a message queue length and the length of the queue to receive messages can be long range; Huaheng kernel seems to be the same length, (not to exceed the maximum BUFSIZ = 1024).



CXX = $(CROSS_COMPILE)g


pin93, CN1 pin95), but only if the CPU when they reset it as a BUSW1: BUSW0 portfolio decision CS0 data width memory. Does not require the allocation.http://ftp.boe.tcc.edu.tw/tnc/firewall/ a download: linuxconf-1.25r7-3.i386.rpm the RPM package, and then REDHAT7.3 LINUX implementation of the machine:


move.l ?, _ramstart } Set start of ram }


CXX = $(CROSS_COMPILE)g



: orib #84,?


19.  C  
.
p = inittab   numcmd  ;
p = inittab   numcmd  ;


CXX = $(CROSS_COMPILE)g
CXX = $(CROSS_COMPILE)g
make menuconfig Loadable module support --- >
debugging embedded applications LINUX The most important way is through the NFS mount the hard drive of the host application to implement, through its serial port terminals to observe the printing of information to achieve the purpose of debugging.
}
CXX = $(CROSS_COMPILE)g
CXX = $(CROSS_COMPILE)g


add.l ?, ? } Copy from end }
extern void arch_gettod (int } year, int } mon, int } day, int } hour ,
rpm -i linuxconf-1.25r7-3.i386.rpm  6995KB


int i = (expires >> (TVR_BITS   2 } TVN_BITS))  and  TVN_MASK;
OBJ = $(AOBJ) $(POBJ) $(SOBJ) dputs.o getdelim.o getline.o }
uClinux/linux/arch/m68knommu/ kernel/time.c:


icrp = (volatile unsigned long }) (MCF_MBAR   MCFSIM_ICR1);
move.l ?, %sp } Set up initial stack ptr }
request_irq(72, handler, SA_INTERRUPT, "ColdFire Timer", NULL );
}
lea.l _ebss, ? } Set up destination }
}
CXX = $(CROSS_COMPILE)g
lea.l _ebss, ? } Get end of bss }
CXX = $(CROSS_COMPILE)g
move.l -(?), ? } Copy dword }
}
uClinux/linux/arch/m68knommu/ kernel/time.c:
CFLAGS  = -DFLOATS=1
}
move.l ?, _ramvec } Set up vector addr }


>>> fg xx e00400  0x00e00400 address from the Department initiated, together with the 0x400 skip ahead to 1024 bytes ramvect
move.l ?, -(?)


arch_gettod (&year, &mon, &day, &hour, &min, &sec);


if ((year += 1900) < 1970)
19.  C  
make menuconfig Loadable module support --- >
movec ?, %VBR


CFLAGS  = -DFLOATS=1
CXX = $(CROSS_COMPILE)g
}
}
} }}}}}}}}} Sector 7 [FFC40000] (0-unprotect, 1 protect):0
#cat $(IMAGEDIR)/linux.bin.gz $(ROMFSIMG) > $( IMAGE)  
}
void timer_interrupt (int irq, void } dummy, struct pt_regs } regs)
}
move.l ?, _ramend } Set end ram addr }
CXX = $(CROSS_COMPILE)g


lea.l _ebss, ? } Set up destination }
: orib #84,?
year  = 100;


: orib #84,?


}
1) TIMER  ICR1 0xd priority == 5 2.0.38 TMR1 2.4 TMR4
TEXT = 00100000-00156e6c DATA = 00000000-0016685c BSS = 0016685c-0017d7f0
OBJ = $ (AOBJ) $ (POBJ) $ (SOBJ) dputs.o snprintf.o getdelim.o getline . o
}
if (time_state != TIME_BAD && xtime.tv_sec > last_rtc_update + 660 &&
xtime.tv_usec > 500000 - (tick >> 1) &&
xtime.tv_usec < 500000 + (tick >> 1)) }
move.l -(?), ? } Copy dword }
CXX = $(CROSS_COMPILE)g
}
int i = (expires >> (TVR_BITS   2 } TVN_BITS))  and  TVN_MASK;
}


}
HHCF C  
genromfs}/ usr/local/bin/genromfs}
}
move.l ?, -(?)
move.l ?, -(?)
}
CXX = $(CROSS_COMPILE)g
if (timer->next || timer->prev) }
}(volatile unsigned long })(MCF_MBAR 0x20) |= 0x00800000;
CXX = $(CROSS_COMPILE)g
.
}
.
CXX = $(CROSS_COMPILE)g
CXX = $(CROSS_COMPILE)g
}
.
move.l #MEM_SIZE, ?
}
int i = (expires >> (TVR_BITS   2 } TVN_BITS))  and  TVN_MASK;
}
}
CXX = $(CROSS_COMPILE)g
}
unsigned long expires = timer->expires;
move.l ?, _ramstart } Set start of ram }


if (idx < TVR_SIZE) }
int i = expires & TVR_MASK;
CXX = $(CROSS_COMPILE)g
} } if (idx < 1 << (TVR_BITS + TVN_BITS)) }
int i = (expires >> TVR_BITS) & TVN_MASK;
CXX = $(CROSS_COMPILE)g
} } if (idx < 1 << (TVR_BITS + 2 } TVN_BITS)) }
int i = (expires >> (TVR_BITS + TVN_BITS)) & TVN_MASK;
CXX = $(CROSS_COMPILE)g
} } if (idx < 1 << (TVR_BITS + 3 } TVN_BITS)) }
int i = (expires >> (TVR_BITS + 2 } TVN_BITS)) & TVN_MASK;
CXX = $(CROSS_COMPILE)g
} } if (expires < timer_jiffies) }
}(volatile unsigned long })(MCF_MBAR 0x20) |= 0x00800000;
move.l 8(?), ? } Get size of ROMFS }
}
and.l #0xfffffffc, ? } Whole words }
} } if (idx < 0xffffffffUL) }
int i = (expires >> (TVR_BITS + 3 } TVN_BITS)) & TVN_MASK;
CXX = $(CROSS_COMPILE)g
.
CN5 p19,p23,p25
timer->next = timer->prev = timer;
}
}
in uClinux/linux/arch/m68knommu/platform/5272 / config.c of coldfire_timer_init increase in TMR2 initialization settings and applications break. And then write their own TMR2 timer interrupt service routine,
CXX = $(CROSS_COMPILE)g
uClinux/linux/arch/m68knommu/ kernel/time.c:
CXX = $(CROSS_COMPILE)g
void timer_interrupt (int irq, void } dummy, struct pt_regs } regs)
it is a LINUX OS to be used to provide the clock, interrupted from time to time on their own do not have to do this work, it 10ms into the first break in their TMR2 interrupt proceedings to do their work on it. Here, of course, the Must be dealt with quickly.




.
move.l 8(?), ? } Get size of ROMFS }


m68k-elf-g-m5307-msep-data-Wl,-elf2flt-o test test.cpp-lstdc-lc-lgcc


}


genromfs}/ usr/local/bin/genromfs}
cmp.l ?, ? } Check if at end }


inux -D__linux__ -Dunix -DEMBED -O2 -msoft -float
if ((year  = 1900) < 1970)
}
make menuconfig Loadable module support --- >
}
CXXLIBS = $ (LDPATH) $ (LIBSTDCPP) $ (LIBIOSTREAM) $ (LIBIO) $ (LIBIBERTY) $ (LIBC) $ (LIBGCC)
}
int i = (expires >> (TVR_BITS   2 } TVN_BITS))  and  TVN_MASK;
move.l ?, -(?)
19.  C  
year  = 100;
year  = 100;
movec ?, %VBR
[ -d $ (IMAGEDIR) ] || mkdir -p $(IMAGEDIR)
}
clr.l ? } Set value }
}
CXX = $(CROSS_COMPILE)g
}
C   5272 uclinux config.arch
}


CXX = $(CROSS_COMPILE)g



movec ?, %VBR


CXX = $(CROSS_COMPILE)g


make menuconfig General setup --->


movec ?, %VBR
move.l #MEM_SIZE, ?
CXX = $(CROSS_COMPILE)g
}
} CMOS clock accordingly every ~ 11 minutes. Set_rtc_mmss () has to be


here is a direct Designated memory address (of course, is to do a good job on the unused address), and then start a process of another process, the process between the two processes, a difference of just 1 so that it can process between the two signals A.
CXX = $(CROSS_COMPILE)g
19.  C  
CXX = $(CROSS_COMPILE)g
}
CXX = $(CROSS_COMPILE)g
move.l ?, -(?)
move.l #MEM_SIZE, ?
if ((year  = 1900) < 1970)
CN5 p19,p23,p25
a total of 4 process, a difference of a start, so that they enter the title in a row happens to be the one that is a random process to know that it would like a signal, the process. This can all signal-issuing process, the allocation of shared memory is the first memory block, and then transfer the operating system has a good distribution of shared memory address, the use of the pipeline to create pipe, and then use vfork create another process and transmit The channel read, write, fd, the pipeline will be able to read and write.


}
make menuconfig Loadable module support --- >
movec ?, ?CR } Enable cache }
} } if (idx < 1 << (TVR_BITS   TVN_BITS)) }
check system uClinux \ linux \ arch \ m68knommu \ kernel/sys_m68k.c in ipc system calls, call - "sys_msgget, sys_msgctl, sys_msgsnd, sys_msgrcv" core function;
make menuconfig Loadable module support --- >
}
CXX = $(CROSS_COMPILE)g
CXX = $(CROSS_COMPILE)g
make menuconfig Loadable module support --- >
4 makefile msg -> libc.a ;
19.  C  
.
-L/HHCF5272-R1/uClinux/lib / libm -L/HHCF5272-R1/uClinux/lib/libnet
void coldfire_timer_init (void (} handler) (int, void }, struct pt_regs }))
.




lea 0x2000(?), %sp


if ((year  = 1900) < 1970)
lea init_task_union, ?
move.l ?, -(?)
move.l ?, -(?)


CXX = $(CROSS_COMPILE)g


}(volatile unsigned long })0x10000080 &=0xff003fff; // PACNT 14-23 bit is cleared,use PA7-11
} ((volatile unsigned short }) 0x10000084 | = 0x0f80; / / PADDR 7-11 bit is setted, use as output


request_irq(72, handler, SA_INTERRUPT, "ColdFire Timer", NULL );
request_irq(72, handler, SA_INTERRUPT, "ColdFire Timer", NULL );




19.  C  


CXX = $(CROSS_COMPILE)g
. <sys/wait.h>
. <stdio.h>


: orib #84,?
}
.
year  = 100;
.
cmp.l ?, ? } Check if at end }
CXX = $(CROSS_COMPILE)g
wait(&waitstat);
year  = 100;
CXX = $(CROSS_COMPILE)g
CXX = $(CROSS_COMPILE)g
movec ?, %VBR
.
}
uC popen pclose fd wait &waitstat) uClibc popen X86 vfork PC fork




year  = 100;


MCF5272 processor provides a 6 way for the interruption of external peripherals to control the use of the chip. MCF5272 in the start-up code (sysinit.c code) shielding all the internal and external disruption, as users expand the use of their equipment when the source of disruption in the device driver initialization code (for example, open function), Must be manually opened to allow the external interrupt source. And a shield to allow the source is interrupted by setting register ICRn achieved.
CXX = $(CROSS_COMPILE)g
ü in the uClinux / user / init / simpleinit.c out in Note read_inittab function HHTECH part of the contents of the following:
19.  C  
}
.
make menuconfig Loadable module support --- >
}
.
make menuconfig Loadable module support --- >
}
.
make menuconfig Loadable module support --- >
}
.
make menuconfig Loadable module support --- >
}
}




CXX = $(CROSS_COMPILE)g


make menuconfig Loadable module support --- >


/ usr / local / bin / genromfs-v-V "ROMdisk"-f $ (ROMFSIMG )-D $ (ROMFSDIR)


uClinux/linux/arch/m68knommu/ kernel/time.c:


1) on-line version of the open source only the core version of RAM, ROM version does not provide, Oh, I would like to do so may be restricted to commercial users, because version of the RAM needed to guide the bootloader (but within the industry, bootloader basic We do not provide the source code), can not start, it can not be used as a commercial product, so it can only give fans a toss play it. Hua Heng for the customer to complete this part of the ROM of the work.


2) localization in Huaheng devices provided by the board hardware, so for their own hardware to amend the code to start the system, the hardware device drivers BSP, and to provide the appropriate download, the software programming tools such as these should His transplant, modify or customize their own completely. Without such aid, apart from the empty uClinux the tar package is not developed debugging.


clr.l ? } Set value }



move.l #MEM_SIZE, ?


application of transplantation in general and the kernel version is not in any way related to, of course, some applications need the support of the core, such as pppd and so on. In the kernel 2.0.38 Kernel 2.4 and move between applications, the only pay attention to the Makefile is written:


In fact, the difference between a word, is below 2.4, it elf2flt as a parameter step gcc completed, and would also be divided into two 2.0.38 Step-by-step, in the Makefile on the following:


.


rpm -i linuxconf-1.25r7-3.i386.rpm  6995KB
.
.


move.l ?, (?)  } Clear each word }



19.  C  


each suspended the use of the device driver initialization code, first of all to break open, because the startup code to prohibit all interrupt (mask), according to the manual CPU, in the corresponding ICRn write PI-1, and The three places behind the IPL for 0 to break the shield, said the source. ICR is about to correspond to the corresponding byte is set to 8. For example, start-up, ICR1 was set to: 0x88888888.


Failure to open, ICRn in the corresponding PI write-1, behind the three-IPL to write 001 to 111 on the interruption of the operation shows that open source, and set its priorities for the break 1-7, the higher the level, the priority The higher the grade. For example, the MCF5272 several internal modules used by the internal interrupt:
icrp = (volatile unsigned long }) (MCF_MBAR   MCFSIM_ICR3);//FEC
CXX = $(CROSS_COMPILE)g
CXX = $(CROSS_COMPILE)g   $(CPUFLAGS) -DCONFIG_COLDFIRE
add.l ?, ? } Copy from end }



.
}}}}}}}}}} Sector 30 [FFDB0000] (0-unprotect, 1 protect) :0
CXX = $(CROSS_COMPILE)g
- L libc -L
move.l ?, -(?)
OBJ = $(AOBJ) $(POBJ) $(SOBJ) dputs.o getdelim.o getline.o }
}icrp = (}icrp & 0x70777777) | 0x0d000000;



TMR4: in uClinux/linux-2.4.x/arch/m68knommu/platform / 5272/config.c in TIMER of the initialization is as follows:
void coldfire_timer_init (void (} handler) (int, void }, struct pt_regs })) function in the following code:
icrp = (volatile unsigned long }) (MCF_MBAR   MCFSIM_ICR1);
move.l ?, %sp } Set up initial stack ptr }
int i = (expires >> (TVR_BITS   2 } TVN_BITS))  and  TVN_MASK;



UART1/UART2: in uClinux/linux-2.4.x/drivers/char/mcfserial.c, the following code of conduct UART interrupt initialization:
C   5272 uclinux config.arch
CXX = $(CROSS_COMPILE)g
CXX = $(CROSS_COMPILE)g
}}}}}}}}}} Sector 23 [FFD40000 ] (0-unprotect, 1 protect):0
switch (info->line) }
.
move.l ?, -(?)
}
.
move.l ?, -(?)
}



In addition, MCF5272 corresponding external interrupt, Does not automatically clear the pending disruption, so users have to deal with disruptions in their own function here at the end of the processor to complete this work. For example: external interrupt 3


CXX = $(CROSS_COMPILE)g   $(CPUFLAGS) -DCONFIG_COLDFIRE



move.l ?, -(?)


lea.l _ebss, ? / } Set up destination }


for example, : Request a signal every second, to print a test. Would signal / alarm can only be a one-time, it now circulating, all have a signal every second, it is necessary to further its signal processing functions in their replacement .
.
}
lea init_task_union, ?
.
movec ?, %VBR
}
}
}
move.l #MEM_SIZE, ?
.
.
19.  C  
}
}



movec ?, %VBR


users to compile their own Applications, is also under implementation of the uClinux to make, the screen on a roll over, SHIFT PAGEUP also can not then turn more, in fact, their application is not clear how the compiler.


uClinux make >&t t 2.1.3 uClinux/user/inetd ping


p = inittab   numcmd  ;
/ HHCF5272-R1/uClinux/tools/m68k-elf-gcc-m5200-Wa,-m5200-DCONFIG_COLDFIRE-Dl
2. user/init/ simpleinit.c /bin/sh  
-I/HHCF5272-R1/uClinux/tools/gcc-include -I/HHCF5272-R1 / uClinux / lib / libc / include
CXX = $(CROSS_COMPILE)g
-I/HHCF5272-R1/uClinux/vendors / include-fno-builtin-DSERVICES = \ "/ etc / services
}(volatile unsigned long })(MCF_MBAR 0x20) |= 0x00800000;
move.l ?, _ramend } Set end ram addr }
m68k-elf-gcc-m5307-DCONFIG_COLDFIRE-Os-g-fomit-frame-pointer-Dlinux
lea.l _ebss, ? } Set up destination }
m68k-elf-gcc-m5307 -- msep-data-Wl,-elf2flt-o bcdm bcdm.c-lpthread-lc
m68k-elf-gcc-m5307-DCONFIG_COLDFIRE-Os-g-fomit-frame-pointer
move.l ? , ? } Mem end addr is in a0 }


if (console_device and and strcmp (console_device, "/ dev / null"))
inux -D__linux__ -Dunix -DEMBED -O2 -msoft -float
m68k-elf-gcc-m5307 -- msep-data-Wl,-elf2flt-o bcdm bcdm.c-lpthread-lc
m68k-elf-gcc-m5307-DCONFIG_COLDFIRE-Os-g-fomit-frame-pointer
} } if (idx < 1 << (TVR_BITS   3 } TVN_BITS )) }
currently the main problem is completely installed REDHAT7.3 did not provide linuxconf software tools and therefore can not configure the NFS server. But the problem is Easy to resolve, which needs to
timerp = (volatile unsigned short }) (MCF_MBAR MCFTIMER_BASE1);
} CMOS clock accordingly every ~ 11 minutes. Set_rtc_mmss () has to be
lea.l _ebss, ? } Get end of bss }



icrp = (volatile unsigned long }) (MCF_MBAR   MCFSIM_ICR1);//MII
make menuconfig Loadable module support --- >
} }}}}}}}}} Sector 7 [FFC40000] (0-unprotect, 1 protect):0
: orib #84,?
CXX = $(CROSS_COMPILE)g
-Wall-Wstrict-prototypes-O2-fomit-frame -pointer-fno-strength-reduce: These are the parameters of the compiler;




year  = 100;


in view of the current issue of the package using uClinux as its root file ROMFS System, so most of the directory can not be written. Only / var, / tmp is a RAM disc can be written, but the board inside a brown-out on the contents of the lost, it can only be used as a temporary file, not the permanent preservation of data, such as profiles, and so on. Tell us about the following several FLASH on the way to save configuration:


1. for simple, small profile, and so on, but not very frequent (for example, Wrote one minute 10) to write and direct their own in the free FLASH Department (for example, the second film on FLASH) to draw a region in order to write their own definition of the way, and board automatically read out. Hua Heng provided such a sample code, that is, the user / memtools /, the details of the second chapter in the manual "FLASH sector to preserve IP address" section. To make such a big advantage is that users control the extent of the largest and most flexible form, can be kept by the custom data, you can not file the form. The following are several ways to preserve the form of document requests and can not deal with custom data preservation.


2. For more profile, the general RAM are written on the first day, and then choose to save, one-time write a few FLASH sector. Flatfsd can then use the software, which required the use of the core with support, that is, in blkmem.c designated for preservation of data in several sectors of the start / end address. In this way can not meet very often write.


3. Frequently compared to the preservation of data, it is necessary to establish additional board in the log-file system JFFS/JFFS2, or simply used to replace JFFS/JFFS2 for ROMFS root file system. This directory is the board can be written, just as hard, do not need additional tools to be responsible for the data will be written into the FLASH. JFFS is supported by the 2.0.38 kernel, it does not support JFFS2, JFFS2 was to support the 2.4 kernel, it adopted a mature and stable technology MTD, the JFFS than stability. Both the file system in uClinux does not support the realization of the complex, but it is also the practical need for some additional work, such as the programming tool with generating new image.bin compiler, because the real product of the software is allowed to each After the start times are also carried out many of the manual, for example, the file system to load, and so on, the factory programming board must first be completed, but not many points but also programming and so on, these are rather complicated, and there is no Programming tools, source code can not be completed. Hua Heng JFFS/JFFS2 to provide the entire software technology.



lea init_task_union, ?


2.0.38 ram.ld crt0_ram.S bootloader   2.4.17 DOWN uClinux-Coldfire uClinux-dist-20020701.tar.gz bootloader HHCN> readàgo 100000 2.4 RAM HHCF5272-LCD-IDE-R1 HHCF5272-2ETH-R2 2.4 FLASH RAM bootloader RAM readàgo RAM DOWN
1 is the first crt0_ram.S and download the version of uClinux-Coldfire different crt0_ram.S, Hua Heng is a revision of the code, if not necessarily directly through the bootloaderàreadàgo 100000 and up and running. At this time, therefore it is necessary to use the Internet to download the original unaltered crt0_ram.S, in fact little difference between the two documents, Hua Heng is the only version of the Notes romfs a copy of part of the code:
as long as the uClinux/linux-2.4.x/arch/m68knommu/platform/5272/HHTECH/crt0_ram.S a # if 0 changed to # if 1
.
.
movec ?, %VBR
move.l ?, ? } Copy of bss start }
}
}(volatile unsigned long })(MCF_MBAR 0x20) |= 0x00800000;
TEXT = 00100000-00156e6c DATA = 00000000-0016685c BSS = 0016685c-0017d7f0
}
move.l #MEM_SIZE, ?
}
if (console_device and and strcmp (console_device, "/ dev / null"))
15.  BDM  kernel- module version mismatch
}
move.l #0x01000000, ? } Invalidate cache cmd }
: orib #84,?
uClinux/linux/arch/m68knommu/ kernel/time.c:
} } if (idx < 1 << (TVR_BITS   TVN_BITS)) }


}
move.l ?, _rambase } Set up base RAM addr }
}
CFLAGS  = -DFLOATS=1


HHCF C  
rpm -i linuxconf-1.25r7-3.i386.rpm  6995KB
4 makefile msg  -> libc.a ;


}
}
CXX = $(CROSS_COMPILE)g
}
C   5272 uclinux config.arch
lea.l _sbss, ? } Get start of bss }
vi ctrl ] / ctrl T
add.l ?, ? } Copy from end }
.


}
add.l ?, ? } Copy from end }
}
lea.l _ebss, ? / } Set up destination }
move.l ?, _ramstart } Set start of ram }
CXX = $(CROSS_COMPILE)g
movec ?, ?CR } Invalidate cache }
lea.l _ebss, ? / } Set up destination }
lea.l _ebss, ? } Get end of bss }
[ -d $ (IMAGEDIR) ] || mkdir -p $(IMAGEDIR)
if (open("/dev/null", O_RDWR, 0) < 0)
move.l ?, (?)  } Clear each word }
add.l ?, ? } Copy from end }
CXX = $(CROSS_COMPILE)g
move.l ?, _ramstart } Set start of ram }
year  = 100;
movec ?, ?CR } Enable cache }
movec ?, %VBR
C   user
: orib #84,?
.
}
clr.l ? } Set value }
}
movec ?, ?CR } Invalidate cache }
BDM "bdm not open" .
lea init_task_union, ?
19.  C  
addq.l #8, ? } Allow for rounding }
move.l -(?), ? } Copy dword }
: orib #84,?


}
4 makefile msg  -> libc.a ;
}
movel ?, _current_task
p = inittab   numcmd  ;
}}          


}
move.l ?, _ramvec } Set up vector addr }
}
lea.l _ebss, ? } Set up destination }


}
lea.l _ebss, ? } Get end of bss }


: orib #84,?
.
[ -d $ (IMAGEDIR) ] || mkdir -p $(IMAGEDIR)
}
from the Internet directly from the default DOWN The ORIGIN = 0x20000, so we used the bootloader to download it, of course, is not running up. SECTIONS of the following section does not require any changes.
CXX = $(CROSS_COMPILE)g
}
move.l ?, _ramend } Set end ram addr }
OBJ = $ (AOBJ) $ (POBJ) $ (SOBJ) dputs.o snprintf.o getdelim.o getline . o
m68k-elf-objcopy-O binary $ (ROOTDIR ) / $ (LINUXDIR) / linux $ (IMAGEDIR) / linux.bin
move.l -(?), ? } Copy dword }
#cat $(IMAGEDIR)/linux.bin.gz $(ROMFSIMG) > $(IMAGE)  
cat $(IMAGEDIR)/linux.bin $(ROMFSIMG) > $(IMAGE)
$(ROOTDIR)/tools/cksum -b -o 2 $(IMAGE) >> $(IMAGE)
icrp = (volatile unsigned long }) (MCF_MBAR   MCFSIM_ICR1);
CXX = $(CROSS_COMPILE)g
BSS=`m68k-elf-objdump --headers $(ROOTDIR)/$(LINUXDIR)/linux | grep .bss` ; ADDR=`set -- $$}BSS} ; echo 0x$$}4}` ; m68k-elf-objcopy --add-section=.romfs=$(ROMFSIMG) --adjust-section-vma=.romfs=$$}ADDR} --no-adjust-warnings --set-section-flags=.romfs=alloc,load,data $(ROOTDIR)/$(LINUXDIR)/linux $(ELFIMAGE) 2> /dev/null



4 to amend Article 125 of the linux-2.4.x/drivers/block/blkmem.c trip began a few words out defined (CONFIG_HHTECH), the revised code is as follows:


move.l #MEM_SIZE, ?
move.l ?, -(?)
CFLAGS  = -DFLOATS=1
CFLAGS  = -DFLOATS=1


}


p = inittab   numcmd  ;




move.l ?, -(?)


uClinux/linux-2.4.x / directory compiled by the linux file has more than 5M, which is the ELF file format, which was converted into image.bin use m68k-elf-objcopy tool to convert binary format linux . bin, only this time it had 800k, and then click on the compressed into a 300k. This work can be found in specific uClinux/vendors/HHTECH/M5272/Makefile.



lea.l _sbss, ? } Get start of bss }


for the 2.4 kernel to amend uClinux/linux-2.4.x/arch/m68knommu/platform/5272/HHTECH/crt0_ram.S (for 2.0ROM version for uClinux/linux/arch/m68knommu/platform/5272/MOTOROLA/crt0_rom . S), as long as a revision: the definition of the first document MEM_SIZE Wang, Hua Heng provided for 0x01000000, that is, 16M. If you want the user to draw 8M for the management of their use, as long as this value can be changed to 0x00800000. Such as LINUX is not aware of any 8M this address, this OS in the allocation of memory when not to use these address space, which is equivalent to steal memory from the OS where to use their own. For example, the kernel can be used to drive applications and communications with shared memory, and so on.



CXX = $(CROSS_COMPILE)g


m68k-elf-gcc-m5307 -- msep-data-Wl,-elf2flt-o bcdm bcdm.c-lpthread-lc


In the process, there is a problem of competence, that is, the host board mount hard disk, NFS mount this operation is not the default to the root of the implementation of the authority, so it does not have permission to board the implementation of the host program on your hard disk, At this time it is necessary to host in the run chmod 777 app, which app for the application executable file name. In fact, this phenomenon is still relatively easy for developers to solve, because when the implementation of the application, minicom will be error, permision denied, or unknown error 4. But for some the situation is not always so easy to see that the authority is the issue:


such as: WEB management software debugging code cgi, we place the host / cgi-bin / through the NFS mount to the board of the CGI work in the directory / home / httpd / cgi-bin /, this time through the implementation of the IE browser, CGI Operation, the error would be 403, there is also a question of authority, that is, the CGI directory can be asked to write their work, it is necessary at this time in the host run: chmod 777 / cgi-bin, this time, the browser will be able to immediately Work.



move.l ?, -(?)


CXX = $(CROSS_COMPILE)g
2. user/init/ simpleinit.c /bin/sh
CXX = $(CROSS_COMPILE)g
19.  C  
CXX = $(CROSS_COMPILE)g
if ((year  = 1900) < 1970)
.
year  = 100;
}


int i = (expires >> (TVR_BITS   2 } TVN_BITS))  and  TVN_MASK;
CXX = $(CROSS_COMPILE)g   $(CPUFLAGS) -DCONFIG_COLDFIRE


move.l -(?), ? } Copy dword }


solution, I think there are two, one Com1 I do not redirect the standard input and output, and the other is in standard input-output does not start shell . The first is never done, the second can be modified by the following methods.


CXX = $(CROSS_COMPILE)g
}


CXX = $(CROSS_COMPILE)g


CXX = $(CROSS_COMPILE)g



add.l ?, ? } Copy from end }


make menuconfig Loadable module support --->


lea.l _ebss, ? } Get end of bss }
}}}}} }}}}} Sector 11 [FFC80000] (0-unprotect, 1 protect):0
CXX = $(CROSS_COMPILE)g
movec ?, ?CR } Invalidate cache }


CXX = $(CROSS_COMPILE)g




CXX = $(CROSS_COMPILE)g


early next uClinux applications and are based on the static link way link uClibc / uC-libc, is already uClinux support the dynamic link library uClibc. Dynamic Link is able to achieve the benefits of multiple applications to share code in order to save memory consumption, the equivalent of what WINDOWS under the DLL into the advantages of sharing.


move.l ?, _ramvec } Set up vector addr }


.


-L/HHCF5272-R1 / uClinux / lib / libc /. -L/HHCF5272-R1/uClinux/lib/libc/lib



CXX = $(CROSS_COMPILE)g


}} } if (idx < 1 << (TVR_BITS   2 } TVN_BITS)) }


download m68k-elf-tools-20030314.sh to LINUX PC machine, chmod 777 m68k-elf-tools-20030314.sh, then ./m68k-elf-tools-20030314.sh directly to the latest m68k-elf - xxx collection of tools to install / usr / local / below, you can use directly.



icrp = (volatile unsigned long }) (MCF_MBAR   MCFSIM_ICR1);//MII


mount nmbd minicom /mnt/nmbd&


2. user/init/ simpleinit.c /bin/sh
2. user/init/ simpleinit.c /bin/sh
CXX = $(CROSS_COMPILE)g
This is because the application did not use the cross-compiler compiler tools, but the PC LINUX under the gcc compiler. This problem is often due to the customer is not in the implementation of the uClinux directory make for a unified compiler, but the application directly to the implementation of the directory due to make. This is due to uClinux / user / application under each of the Makefile to use a lot of macros, included in the CC and so on, these macros are unified under uClinux in a directory defined in the document, if the user directly to the user / Under The application directory implementation of the make, these macros will not be able to access uClinux to set the value, but automatic use of the default PC LINUX system, such as the CC if the user does not specify, the default is gcc, so there will be no application to use m68k-elf-gcc compiler, but PC LINUX under the gcc compiler, so that made up the executable file on the board, of course, can not be implemented.



CFLAGS  = -DFLOATS=1


4 makefile msg  -> libc.a ;
}
add.l ?, ? } Copy from end }
- if (open("/dev/ttyS0", O_RDWR, 0) < 0)
+ if (open("/dev/null", O_RDWR, 0) < 0)
genromfs}/ usr/local/bin/genromfs}


} Set to 4 meg for the Cadre III board (m5206e) .


} } if (idx < 1 << (TVR_BITS   3 } TVN_BITS )) }
CXX = $(CROSS_COMPILE)g
#if LINUX_VERSION_CODE < 0x020100
if (console_device && strcmp(console_device, "/dev/null"))
}
movec ?, %VBR
.
move.l ?, -(?)
move.l ?, -(?)
p = inittab   numcmd  ;
year  = 100;
strcpy(p->fullline, "console");
strcpy(p->tty, "console");
strcpy(p->termcap, "linux");
p->toks = "/bin/sh";
}
.
}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
}
.
usually can not use the COM1 serial port for communication of the reasons It has been redirected to a standard input-output system of surveillance of its shell and the process will be dealt with from here to send incoming data, process the user can not be obtained.
-L/HHCF5272-R1 / uClinux / lib / libc /. -L/HHCF5272-R1/uClinux/lib/libc/lib
ü uC version of the many, it seems there is a uClinux/linux-2.4.x/init / main.c start in the shell, the code in the function do_shell, check main.c file, if the function of the
if(open("/dev/ttyS0",O_RDWR,0)<0)
}
if(open("/dev/null",O_RDWR,0)<0)
}
attention to the above-mentioned information is incorrect, programming From the end when all of this information shows, and can not be said that the success of programming. Programming will depend on the success of minicom side of the display of information to judge.
move.l #MEM_SIZE, ?
}
19.  C  
} } if (idx < 1 << (TVR_BITS   3 } TVN_BITS )) }
CXX = $(CROSS_COMPILE)g
#if LINUX_VERSION_CODE < 0x020100
if (console_device && strcmp(console_device, "/dev/null"))
}
movec ?, %VBR
.
.
}
move.l ?, -(?)
p = inittab   numcmd  ;
year  = 100;
strcpy(p->fullline, "console");
strcpy(p->tty, "console");
strcpy(p->termcap, "linux");
strcpy(p->termcap, "linux");
p->toks = "/bin/sh";
}
}
.
CXX = $(CROSS_COMPILE)g
CXX = $(CROSS_COMPILE)g
CXX = $(CROSS_COMPILE)g
.
movec ?, %VBR
.
}


}
is not to say that this will never start a shell, only the standard output does not start the shell, However, if the user telnet or the board will p0 in the mouth on the shell to start, otherwise customers will never be able to command issued an order of the board.




movec ?, %VBR


move.l ?, %sp } Set up initial stack ptr }
movec ?, %VBR
move.l ?, -(?)
C   5272 uclinux config.arch



CXX = $(CROSS_COMPILE)g


if ((year  = 1900) < 1970)
lea init_task_union, ?
lea init_task_union, ?
.
if ((year  = 1900) < 1970)



}




CXX = $(CROSS_COMPILE)g
CXX = $(CROSS_COMPILE)g
CXX = $(CROSS_COMPILE)g
CXX = $(CROSS_COMPILE)g
CXX = $(CROSS_COMPILE)g
movec ?, ?CR } Enable cache }
movec ?, ?CR } Enable cache }
CXX = $(CROSS_COMPILE)g
movec ?, ?CR } Enable cache }
movec ?, ?CR } Enable cache }
movec ?, ?CR } Enable cache }
}


CXX = $(CROSS_COMPILE)g


.
CXX = $(CROSS_COMPILE)g


}



.


CGI is a WEB SERVER-side code expansion. For example, IIS, and other side of the ISAPI development of the DLL code WINDOWS are on the side of the WEB SERVER expansion for the handling WEB browser users to enter, and other forms of static pages other than the intelligence input to deal with.
CGI can be used in LINUX and WINDOWS on the WEB SERVER side expansion can be a variety of scripts such as PHP to achieve, and so on, most of the original C code that is used to achieve the specific code to see what your WEB SERVER support. Embedded LINUX for the use of WEB SERVER the boa, do not support any of the script, only the C code CGI program, each connecting a client browser to connect on SERVER side (on board) to start a CGI process COPY .



} } if (idx < 1 << (TVR_BITS   TVN_BITS)) }


}}          
.
movec ?, %VBR
year  = 100;
movec ?, %VBR



CXX = $(CROSS_COMPILE)g


in such a LINUX open source environment, the most important thing you have not already mastered the knowledge of how much, but to have access to information means all the source code, all in the knowledge that the uClinux directory, Does not require any of the books, there is only a search tool to find and will be able to obtain any necessary knowledge, engaged in the development of learning language, imitation is a very effective means to see if the system is running on how to write the code, follow suit like that A.
19.  C  
movec ?, %VBR
year  = 100;
.
movec ?, %VBR
BDM "bdm not open" .
.
15.  BDM  kernel- module version mismatch



movec ?, %VBR
CN5 p19,p23,p25
lea.l _ebss, ? } Get end of bss }
movec ?, %VBR
to receive signals in the process of their own, wrote that the process of RAM disk (such as / tmp directory) under a document, the process of sending the signal from this document to read, the process can send signals to achieve success.
}
.
lea.l _ebss, ? } Set up destination }
movec ?, %VBR
year  = 100;


lea.l _ebss, ? } Set up destination }
attention: System on board sent a message queue length and the length of the queue to receive messages can be long range; Huaheng kernel seems to be the same length, (not to exceed the maximum BUFSIZ = 1024).
} } if (idx < 1 << (TVR_BITS   TVN_BITS)) }


: orib #84,?
year  = 100;
AOBJ = _stdio_init.o fputc. o fgetc.o fflush.o fgets.o gets.o fputs.o puts.o fread.o fwrite.o fopen.o fclose.o fseek.o rewind.o ftell.o setbuffer.o setvbuf.o ungetc.o


year  = 100;
POBJ = printf.o sprintf.o fprintf.o snprintf.o vprintf.o vsprintf.o vfprintf.o vfnprintf. o vsnprintf.o


year  = 100;
icrp = (volatile unsigned long }) (MCF_MBAR   MCFSIM_ICR2);


request_irq(72, handler, SA_INTERRUPT, "ColdFire Timer", NULL );
lea 0x2000(?), %sp
move.l ?, -(?)
: orib #84,?


lea init_task_union, ?


clr.l ? } Set value }
$(CC) $(CFLAGS) -DL_$} $< -c -o $}.o
lea init_task_union, ?


clr.l ? } Set value }
$(CC) $(CFLAGS) -DL_$} $< -c -o $}.o
lea init_task_union, ?


clr.l ? } Set value }
$(CC) $(CFLAGS) -DL_$} $< -c -o $}.o
lea init_task_union, ?


.
clr.l ? } Set value }
clr.l ? } Set value }


}
movec ?, %VBR


p = inittab   numcmd  ;






Add a comment
Emots
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
Enable HTML
Enable UBB
Enable Emots
Hidden
Remember
Nickname   Password   Optional
Site URI   Email   [Register]