阅读:3280回复:24
内核裁减
我的bsp是远峰提供的2410,在此基础上作的内核有20多M,听说中文字库就有10多M,请问如何压缩字体呢,如何裁减我的内核呢,我曾试着删除一些东西,但删了之后就编译错误,希望哪问高手指点一下,多谢了
|
|
最新喜欢:![]()
|
沙发#
发布于:2005-01-31 20:30
串口不可以用有可能是因为调试串口和应用程序中的串口共用的同一个串口,和我修改ip地址无关.
还有内核裁减的问题,我可以直接修改commom.bib文件,把我不需要的东西去掉,应该没有问题 |
|
|
板凳#
发布于:2005-01-29 18:59
昨天我试改了ip后,好像本来正常的com1不能正常接受数据了,但具体是什么原因引起的,我现在还没有查,明天看看.
我那样是不是有可能破坏注册表,使得某些功能不可用,你的意思是这样的吧? |
|
|
地板#
发布于:2005-01-29 08:29
修改后,察看发现ip为空了,复位后还是原来的ip地址,高手们快来看看我的程序哪里有问题 你修改ip地址并保存然后恢复的功能以前好用吗?还是改过了某些东西之后变得不好用了? |
|
|
地下室#
发布于:2005-01-28 21:40
修改后,察看发现ip为空了,复位后还是原来的ip地址,高手们快来看看我的程序哪里有问题
|
|
|
5楼#
发布于:2005-01-24 08:26
(1)修改合适的环境变量可以控制nk.bin的大小;
(2)locale setting是在平台设置里面。减少语言支持在一定程度上可以减小nk.bin。你的平台是不是用中文的?如果是中文的话,nk.bin可能会很大,因为pb带的中文字库本来就比较大。你可以找找小一点的中文字库。如果只支持英文,那么你的nk.bin会很小。 [编辑 - 1/24/05 by wwei_wang] |
|
|
6楼#
发布于:2005-01-22 20:36
呵呵,我是错把nk.bin当成了内核,那这些环境变量是不是控制nk.bin的大小,不过我加了是没什么作用的?那我想减少nk.bin的大小,除了直接删除一些组件,还有其它的方法吗?
to wwei_wang 我的是release版的,你说的locale setting是不是平台设置里的,我是修改了,可nk.bin的大小也是没有变化. 还有我的那个注册表的网卡注册表项错了,所以提示说无法打开注册表,呵呵,我回去再试试 |
|
|
7楼#
发布于:2005-01-20 09:17
各位老大,谁有标准的中文字库啊?给我一份好么?
|
|
论坛版主
![]() |
8楼#
发布于:2005-01-17 15:41
兄弟儿,那些环境变量是控制内核之外的的东西的,内核不大,最小就400K(我记得最小有过200k的,但没找到,我刚找到的最小406k),大是大在外围可能加了好多乱七八糟的东西,你要注意,内核是指的kern.exe或kernkitl.exe,而不是nk.nb0/nk.bin(这些叫os image,只是有时候大家说成内核了)。最小的平台只包含2个东西:nk.exe和filesys.exe。
|
|
9楼#
发布于:2005-01-17 15:03
To bohezhou:
我按照你们提供的方法,自定义了一些变量IMG_NOAUDIO,IMG_NOBATTERRY,IMG_NOTOUCH,IMGNOBLUETOOTH,IMGNOSECURITY为1,可编译完后内核大小并没有改变, 还有对locale文件进行了修改,我把不需要的语言都去掉了,也没用,这是为什么呢? ////////////////// 兄弟,你怎么搞的?什么locale文件?你最终用的是中文还是英文? 如果是debug版,你就修改debug的locale setting,否则就修改release下的locale setting。 |
|
|
10楼#
发布于:2005-01-17 11:51
注册表恢复后,ip地址是多少?应该不是以前的那个吧?
|
|
|
11楼#
发布于:2005-01-15 19:57
lpb[i++]='';
DWORD type=REG_SZ; DWORD cbData_1=str_ip.GetLength()+1; long ret1=(::RegSetValueEx(hKEY, L"IpAddress", NULL,REG_MULTI_SZ, (BYTE *)lpb, 20)); if(ret1!=ERROR_SUCCESS) { MessageBox(_T("错误: 无法修改有关注册表信息!")); return; } RegCloseKey(hKEY); RegFlushKey(HKEY_LOCAL_MACHINE); } CString strRegBackup = L"\hard disk\RegBackup.reg"; CString strTmp = L"\windows\temp.reg"; void CSaveRegDlg::OnSavereg() { // TODO: Add your control notification handler code here ////////导出。在系统关闭前。 if(! RegCopyFile(strTmp)) ///导出注册表,用temp.reg做缓冲用。 { return; } if(! CopyFile(strTmp, strRegBackup, FALSE)) ///把temp.reg再复制到RegBackup.reg { return; } /////////导入。在系统启动时。 if(! CopyFile(strRegBackup, strTmp, FALSE)) { return; } if(! RegRestoreFile(strTmp)) ///恢复注册表 { return; } if(! KernelIoControl(IOCTL_HAL_REBOOT, NULL, 0, NULL, 0, NULL)) ///重新启动 { return; } } |
|
|
12楼#
发布于:2005-01-15 19:56
CString str_ip;
HKEY hKEY; void CSaveRegDlg::OnChangip() { // TODO: Add your control notification handler code here LPCWSTR data_Set=L"Comm\\PCI\\CS89001\\Parms\\TCPIP"; //打开与路径 data_Set 相关的hKEY,KEY_WRITE表示以写的方式打开。 long ret0=(::RegOpenKeyEx(HKEY_LOCAL_MACHINE, data_Set, 0, KEY_WRITE, &hKEY)); if(ret0!=ERROR_SUCCESS) { MessageBox(_T("错误: 无法打开有关的hKEY11!")); return; } str_ip=m_ip; // str_ip=L"192.168.30.250"; TCHAR lpb[15]; for(int i=0;i<str_ip.GetLength();i++) *(lpb+i) = (str_ip.GetAt(i)); lpb[i++]='\0'; DWORD type=REG_SZ; DWORD cbData_1=str_ip.GetLength()+1; long ret1=(::RegSetValueEx(hKEY, L"IpAddress", NULL,REG_MULTI_SZ, (BYTE *)lpb, 20)); if(ret1!=ERROR_SUCCESS) { MessageBox(_T("错误: 无法修改有关注册表信息!")); return; } RegCloseKey(hKEY); RegFlushKey(HKEY_LOCAL_MACHINE); } CString strRegBackup = L"\\hard disk\\RegBackup.reg"; CString strTmp = L"\\windows\\temp.reg"; void CSaveRegDlg::OnSavereg() { // TODO: Add your control notification handler code here ////////导出。在系统关闭前。 if(! RegCopyFile(strTmp)) ///导出注册表,用temp.reg做缓冲用。 return; if(! CopyFile(strTmp, strRegBackup, FALSE)) ///把temp.reg再复制到RegBackup.reg return; /////////导入。在系统启动时。 if(! CopyFile(strRegBackup, strTmp, FALSE)) return; if(! RegRestoreFile(strTmp)) ///恢复注册表 return; if(! KernelIoControl(IOCTL_HAL_REBOOT, NULL, 0, NULL, 0, NULL)) ///重新启动 return; } |
|
|
13楼#
发布于:2005-01-15 19:52
wxl_50685330,wwei_wang,wxl_50685330等高手快来看看:
我按照你们提供的方法,自定义了一些变量IMG_NOAUDIO,IMG_NOBATTERRY,IMG_NOTOUCH,IMGNOBLUETOOTH,IMGNOSECURITY为1,可编译完后内核大小并没有改变, 还有对locale文件进行了修改,我把不需要的语言都去掉了,也没用,这是为什么呢? 我自己写了一个修改了ip地址后保存注册表的程序,可是不成功,麻烦你们帮我看看是哪里出错了,多谢了 // SaveRegDlg.cpp : implementation file CString str_ip; HKEY hKEY; void CSaveRegDlg::OnChangip() { // TODO: Add your control notification handler code here LPCWSTR data_Set=L"Comm\\PCI\\CS89001\\Parms\\TCPIP"; //打开与路径 data_Set 相关的hKEY,KEY_WRITE表示以写的方式打开。 long ret0=(::RegOpenKeyEx(HKEY_LOCAL_MACHINE, data_Set, 0, KEY_WRITE, &hKEY)); if(ret0!=ERROR_SUCCESS) { MessageBox(_T("错误: 无法打开有关的hKEY11!")); return; } str_ip=m_ip; // str_ip=L"192.168.30.250"; TCHAR lpb[15]; for(int i=0;i<str_ip.GetLength();i++) *(lpb+i) = (str_ip.GetAt(i)); lpb[i++]='\0'; DWORD type=REG_SZ; DWORD cbData_1=str_ip.GetLength()+1; long ret1=(::RegSetValueEx(hKEY, L"IpAddress", NULL,REG_MULTI_SZ, (BYTE *)lpb, 20)); if(ret1!=ERROR_SUCCESS) { MessageBox(_T("错误: 无法修改有关注册表信息!")); return; } RegCloseKey(hKEY); RegFlushKey(HKEY_LOCAL_MACHINE); } CString strRegBackup = L"\\hard disk\\RegBackup.reg"; CString strTmp = L"\\windows\\temp.reg"; void CSaveRegDlg::OnSavereg() { // TODO: Add your control notification handler code here ////////导出。在系统关闭前。 if(! RegCopyFile(strTmp)) ///导出注册表,用temp.reg做缓冲用。 return; if(! CopyFile(strTmp, strRegBackup, FALSE)) ///把temp.reg再复制到RegBackup.reg return; /////////导入。在系统启动时。 if(! CopyFile(strRegBackup, strTmp, FALSE)) return; if(! RegRestoreFile(strTmp)) ///恢复注册表 return; if(! KernelIoControl(IOCTL_HAL_REBOOT, NULL, 0, NULL, 0, NULL)) ///重新启动 return; } |
|
|
14楼#
发布于:2005-01-15 19:50
wxl_50685330,wwei_wang,wxl_50685330等高手快来看看:
我按照你们提供的方法,自定义了一些变量IMG_NOAUDIO,IMG_NOBATTERRY,IMG_NOTOUCH,IMGNOBLUETOOTH,IMGNOSECURITY为1,可编译完后内核大小并没有改变, 还有对locale文件进行了修改,我把不需要的语言都去掉了,也没用,这是为什么呢? 我自己写了一个修改了ip地址后保存注册表的程序,可是不成功,麻烦你们帮我看看是哪里出错了,多谢了 // SaveRegDlg.cpp : implementation file // #include "stdafx.h" #include "SaveReg.h" #include "SaveRegDlg.h" #include <Pkfuncs.h> #include <winbase.h> #include <Pwinreg.h> #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CSaveRegDlg dialog CSaveRegDlg::CSaveRegDlg(CWnd* pParent /*=NULL*/) : CDialog(CSaveRegDlg::IDD, pParent) { //{{AFX_DATA_INIT(CSaveRegDlg) m_ip = _T(""); //}}AFX_DATA_INIT // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); } void CSaveRegDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CSaveRegDlg) DDX_Text(pDX, IDC_IP, m_ip); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CSaveRegDlg, CDialog) //{{AFX_MSG_MAP(CSaveRegDlg) ON_BN_CLICKED(IDC_CHANGIP, OnChangip) ON_BN_CLICKED(IDC_SAVEREG, OnSavereg) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CSaveRegDlg message handlers BOOL CSaveRegDlg::OnInitDialog() { CDialog::OnInitDialog(); // Set the icon for this dialog. The framework does this automatically // when the application's main window is not a dialog SetIcon(m_hIcon, TRUE); // Set big icon SetIcon(m_hIcon, FALSE); // Set small icon CenterWindow(GetDesktopWindow()); // center to the hpc screen // this->ShowWindow(SW_HIDE); // TODO: Add extra initialization here return TRUE; // return TRUE unless you set the focus to a control } CString str_ip; HKEY hKEY; void CSaveRegDlg::OnChangip() { // TODO: Add your control notification handler code here LPCWSTR data_Set=L"Comm\\PCI\\CS89001\\Parms\\TCPIP"; //打开与路径 data_Set 相关的hKEY,KEY_WRITE表示以写的方式打开。 long ret0=(::RegOpenKeyEx(HKEY_LOCAL_MACHINE, data_Set, 0, KEY_WRITE, &hKEY)); if(ret0!=ERROR_SUCCESS) { MessageBox(_T("错误: 无法打开有关的hKEY11!")); return; } str_ip=m_ip; // str_ip=L"192.168.30.250"; TCHAR lpb[15]; for(int i=0;i<str_ip.GetLength();i++) *(lpb+i) = (str_ip.GetAt(i)); lpb[i++]='\0'; DWORD type=REG_SZ; DWORD cbData_1=str_ip.GetLength()+1; long ret1=(::RegSetValueEx(hKEY, L"IpAddress", NULL,REG_MULTI_SZ, (BYTE *)lpb, 20)); if(ret1!=ERROR_SUCCESS) { MessageBox(_T("错误: 无法修改有关注册表信息!")); return; } RegCloseKey(hKEY); RegFlushKey(HKEY_LOCAL_MACHINE); } CString strRegBackup = L"\\hard disk\\RegBackup.reg"; CString strTmp = L"\\windows\\temp.reg"; void CSaveRegDlg::OnSavereg() { // TODO: Add your control notification handler code here ////////导出。在系统关闭前。 if(! RegCopyFile(strTmp)) ///导出注册表,用temp.reg做缓冲用。 { return; } if(! CopyFile(strTmp, strRegBackup, FALSE)) ///把temp.reg再复制到RegBackup.reg { return; } /////////导入。在系统启动时。 if(! CopyFile(strRegBackup, strTmp, FALSE)) { return; } if(! RegRestoreFile(strTmp)) ///恢复注册表 { return; } if(! KernelIoControl(IOCTL_HAL_REBOOT, NULL, 0, NULL, 0, NULL)) ///重新启动 { return; } } |
|
|
论坛版主
![]() |
15楼#
发布于:2005-01-14 16:58
昨天弄到快7点才把我的马儿医好,今天他又...哎,人生不如意,十之八九...
|
|
16楼#
发布于:2005-01-14 09:52
(1)不好意思,没有小一点的中文字库,你可以去ms的网站上找找。
(2)你最好系统的看看PB的帮助文档,那上面的资料很全的。 |
|
|
17楼#
发布于:2005-01-13 22:58
请问你们有小一点的中文字库吗,我刚接触ce不久,对各种环境变量不是很了解,你们有有关各种环境变量的说明资料吗,能否给我一份呢,bohezhou@163.com
|
|
|
18楼#
发布于:2005-01-13 21:59
这么晚了,怎么wxl_50685330大哥还在线上?你真是革命的老黄牛啊 :cool: :P
|
|
|
论坛版主
![]() |
19楼#
发布于:2005-01-13 15:30
就是你的os image的release版本
|
|
上一页
下一页