1.AIX UNIXAIX 5L性能特点
2.通达信 SAR指标源码
3.重装系统重启时蓝屏错误代码:0x000000A5怎么办?
4.电脑开机出现英文字母开不了机怎么办
5.JAVA课程设计计算器的视视频源代码
6.DSP开发——代码保护模块CSM及DSP的存储资源
AIX UNIXAIX 5L性能特点
AIX 5L,作为AIX的频源当前使用版本,旨在支持IBM POWER 和Intel 位平台。源码它引入了动态逻辑分区(DLPAR)功能,下载为基于POWER4的视视频p系列系统提供了高级的灵活性和可扩展性。这一功能允许在一个单一p系列服务器上运行AIX 5L和Linux的频源福州孕妇进口燕窝溯源码多个独立操作系统映像,实现更灵活的源码资源分配。通过LPAR,下载客户可以以更小的视视频粒度从整个可用资源池中选择组件,增加运行的频源灵活性。每个分区运行自己的源码AIX 5L V5.2操作系统,并且可以动态地添加和删除处理器、下载物理内存和I/O插槽,视视频而不影响系统运行,频源以适应不断变化的源码系统优先级和资源需求。
利用DLPAR,客户可以在一个服务器内部创建多个虚拟服务器,实现高效资源分配。添加和删除操作在分区环境内部进行,无需重启系统。此功能允许系统管理员根据实际需求将资源分配到最需要的应用程序上,同时保持分区和系统的运行、服务和支持水平。这一特性提高了系统的灵活性和效率,同时满足了容量规划的jni源码分析需求。
为了提供更高的灵活性、可扩展性和可用性,AIX 5L V5.2推出了动态随需应变容量升级(CUoD)功能。CUoD允许客户在系统安装时预安装额外的处理器,直至业务增长需要激活这些处理器。通过CUoD选项,系统管理员可以在不中断系统运行的情况下动态分配新激活的处理器给各个分区。这一功能显著提高了系统的可用性,并提供了动态处理器备用(Dynamic Processor Sparing)功能,允许系统在保持处理能力不变的情况下继续运行,确保了性能和可用性不受影响。
AIX 5L V5.2还提供了集群管理功能,通过基于AIX 5L的Linux软件和IBM集群系统管理器(CSM)实现对集群环境的有效管理。CSM为p系列和IBM eServer x系列服务器提供了一个单一的控制点,支持安装、配置、维护和更新。基于AIX 5L的CSM作为安装选项和单独许可产品的一部分,集成在AIX 5L V5.2的基本安装介质中。
AIX 5L与Linux之间的亲和性促进了跨平台解决方案的实现,使得在AIX和Linux平台上运行应用变得更加高效和经济。许多在Linux上开发或为Linux开发的应用只需进行一次简单的重新编译,即可在AIX 5L上运行。IBM提供了一个免费的帮帮天下源码Linux应用工具箱,包含多个开放源代码和GNU软件,帮助客户实现这一目标。这一工具箱使得公司能够结合Linux的灵活性和AIX的高级功能,包括先进的负载管理、完善的系统管理工具、可扩展性和安全性功能。
AIX 5L提供并全面使用了强大的行业标准安全技术和目录技术,确保了系统的安全性和合规性。AIX 5L V5.2进一步扩展了这些技术,支持可拔插身份验证模块(PAM)、基于用户的PKI证书、企业身份映射(EIM)、BIND V9、SNMP V3、移动IPv6、无限访问协议(WAP)v1.1、OpenSSH v3.4集成,以及新的基于AES(Rijndael)、SEAL、Mars、Twofish和其他算法的加密解密库。此外,AIX 5L V5.2继续支持IBM网络身份验证服务器(NAS)、IBM目录服务器v4.1和ICSA认证IPsec/***安全组网功能。源码分析react这些功能确保了AIX 5L的安全性和合规性,满足了现代安全环境的需求。
通达信 SAR指标源码
sar指标,也叫抛物线指标,基本的分析指标源码:
VAR1:=SAR(,2,);
S:IF(VAR1>C,VAR1,DRAWNULL),COLORRED,CIRCLEDOT;
X:IF(VAR1B1:=REF(C,1);B2:=REF(C,2);
SS:=IF(C>REF(C,1)ANDREF(C,1)>=REF(C,2),1,IF(CREF(C,2)ANDREF(C,2)>REF(C,1),2,IF(CSM:=IF(REF(SS,1)>0ORREF(SS,python auc源码1)0ORREF(SS,2)0ORREF(SS,3)0ORREF(SS,4)0ORREF(SS,5)0ORREF(SS,6)0ORREF(SS,7)MC:IF(REF(SS,1)>0ORREF(SS,1)0,MIN(B1,B2),MAX(B1,B2))),COLORFFFF;
STICKLINE(SS=1ORSM>=1ANDSS=0,B1,C,0.8,1),COLORRED;
STICKLINE(SS=-1ORSMSTICKLINE(SS=2,B2,C,0.8,1),COLORRED;
STICKLINE(SS=-2,B2,C,0.8,0),COLORFF;
STICKLINE((SS=-1ORSS=-2)ANDSM>0,B2,B1,0.8,1),COLORRED;
STICKLINE((SS=1ORSS=2)ANDSM
重装系统重启时蓝屏错误代码:0xA5怎么办?
原因如下:1、错误分析:
通常是因为主板BIOS不能全面支持ACPI规范。比如有台电脑为联想品牌机,用户自行更换了主板,但未重装一键恢复软件,导致开机蓝屏。因为一键恢复程序是需要ACPI支持的,而更换主板部件可能导致BIOS程序没有识别原来一键恢复的相关联文件,才会出现无法支持的错误。
2、解决方案:
可以刷新BIOS,如果没有相应BIOS升级程序,那么可在安装Windows 2K/XP时,当出现"press F6 if you need to install a third-party SCSI or RAID driver"提示时, 按下F7键,这样Windows操作系统便会自动禁止安装ACPI HAL, 而安装 Standard PC HAL。
3、除此之外,还可以到微软官网的知识库中查阅相关讯息,加以比对,甄别,找到解决方法。
扩展资料:
电脑蓝屏,又叫蓝屏死机(Blue Screen of Death,简称BSOD),是微软的 Windows 系列操作系统在无法从一个系统错误中恢复过来时,为保护电脑数据文件不被破坏而强制显示的屏幕图像。
Windows操作系统的蓝屏死机提示已经成为标志性的画面。大部分是系统崩溃的现象。
Windows中有两个蓝底白字图像都被称为蓝屏死机:一种是Windows 9x操作系统发生小故障,一种是Windows NT发生内核错误。由于Windows 9x已退出历史舞台,所以现在一般指后者。
参考资料:
电脑开机出现英文字母开不了机怎么办
电脑开机出现英文不动,有几个常见的原因:
第一是有F1和F2的字母提示,按一下F1或者F2键既可进入系统;
第二是提示Ctrl+alt+del键,一般是系统文件损坏,重装系统可以恢复;
第三种是有DISKBOOT开头的提示,一般是没有找到硬盘,重新插拔硬盘数据线和电源线或者更换硬盘。
也许是因为不正常关机,或者其他软件问题引起的,首先需要重启电脑,同时按键盘上的:ALT+CTRL+DELETE组合键来重启。
电脑重启同时一直按住键盘的F8,电脑就会进入高级启动选项,通过用键盘的上下键,选择“最后一次的正确配置(高级)”,那么电脑就会从上次的正常开机启动电脑。
如果我们的电脑正常开机完成了,可以使用电脑安全卫士,扫描一下电脑,检查是否存在安全问题。如果按F8键没有进入“高级启动选项”,或者选择“最后一次的正确配置(高级)”后,也没有正常开机的话,建议重装系统。
JAVA课程设计计算器的源代码
比较完整的Java计算器
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
public class calculator extends JFrame implements ActionListener
{ //这里我把JFrame写成Frame,这个错误找了好久
JFrame frame;
private JButton jia=new JButton("+");
private JButton jian=new JButton("-");
private JButton cheng=new JButton("*");
private JButton chu=new JButton("/");
private JButton qiuyi=new JButton("%");
private JButton deng=new JButton("=");
private JButton fu=new JButton("+/-");
private JButton dian=new JButton(".");
private JButton kai=new JButton("sqrt");
private JButton diao=new JButton("1/x");
private JButton aa=new JButton("A");
private JButton bb=new JButton("B");
private JButton cc=new JButton("C");
private JButton dd=new JButton("D");
private JButton ee=new JButton("E");
private JButton ff=new JButton("F");
private TextField k1=new TextField();
private objConversion convert = new objConversion();
JMenuItem copy,paste,s,t,help,about,me;
JRadioButton sixteen,ten,eight,two;
JButton backspace,ce,c,num0,num1,num2,num3,num4,num5,num6,num7,num8,num9;
Container cp;
JTextField text;
String copycontent="";
boolean clickable=true,clear=true;
int all=0;
double qian;
String fuhao;
int jin=,first=1;
public calculator()
{
setTitle("计算器-杨彩制作");
setSize(,);
setLocation(,);
text=new JTextField();
// text.setEnabled(false);
text.setText("0.");
text.setHorizontalAlignment(JTextField.RIGHT);//从右到左
JPanel cp1=new JPanel();
JPanel cp2=new JPanel();
JPanel cp3=new JPanel();
cp=getContentPane();
cp.add(cp1,"North");
cp.add(cp2,"Center");
cp.add(cp3,"South");
cp1.setLayout(new GridLayout(1,6));
cp2.setLayout(new GridLayout(2,4));
cp3.setLayout(new GridLayout(6,6));
sixteen=new JRadioButton("十六进制");
sixteen.setVisible(false);
ten=new JRadioButton("十进制",true);
ten.setVisible(false);
eight=new JRadioButton("八进制");
eight.setVisible(false);
two=new JRadioButton("二进制");
two.setVisible(false);
sixteen.addActionListener(this);
ten.addActionListener(this);
eight.addActionListener(this);
two.addActionListener(this);
ButtonGroup btg=new ButtonGroup();
btg.add(sixteen);
btg.add(ten);
btg.add(eight);
btg.add(two);
JTextField t3=new JTextField();
cp1.add(text);
// text.setEnabled(false);
text.setEditable(false);
text.setBackground(new Color(, , ));
cp2.add(sixteen);
cp2.add(ten);
cp2.add(eight);
cp2.add(two);
backspace=new JButton("Backspace");
backspace.setForeground(new Color(,0,0));
backspace.addActionListener(this);
ce=new JButton("CE");
ce.setForeground(new Color(,0,0));
ce.addActionListener(this);
c=new JButton("C");
c.setForeground(new Color(,0,0));
c.addActionListener(this);
k1.setVisible(false);
cp2.add(k1);
cp2.add(backspace);
cp2.add(ce);
cp2.add(c);
num0=new JButton("0");
num1=new JButton("1");
num2=new JButton("2");
num3=new JButton("3");
num4=new JButton("4");
num5=new JButton("5");
num6=new JButton("6");
num7=new JButton("7");
num8=new JButton("8");
num9=new JButton("9");
cp3.add(num7);
num7.addActionListener(this);
cp3.add(num8);
num8.addActionListener(this);
cp3.add(num9);
num9.addActionListener(this);
cp3.add(chu);
chu.setForeground(new Color(,0,0));
chu.addActionListener(this);
cp3.add(kai);
kai.addActionListener(this);
cp3.add(num4);
num4.addActionListener(this);
cp3.add(num5);
num5.addActionListener(this);
cp3.add(num6);
num6.addActionListener(this);
cp3.add(cheng);
cheng.setForeground(new Color(,0,0));
cheng.addActionListener(this);
cp3.add(qiuyi);
qiuyi.addActionListener(this);
cp3.add(num1);
num1.addActionListener(this);
cp3.add(num2);
num2.addActionListener(this);
cp3.add(num3);
num3.addActionListener(this);
cp3.add(jian);
jian.setForeground(new Color(,0,0));
jian.addActionListener(this);
cp3.add(diao);
diao.addActionListener(this);
cp3.add(num0);
num0.addActionListener(this);
cp3.add(fu);
fu.addActionListener(this);
cp3.add(dian);
dian.addActionListener(this);
cp3.add(jia);
jia.setForeground(new Color(,0,0));
jia.addActionListener(this);
cp3.add(deng);
deng.setForeground(new Color(,0,0));
deng.addActionListener(this);
cp3.add(aa);
aa.addActionListener(this);
cp3.add(bb);
bb.addActionListener(this);
cp3.add(cc);
cc.addActionListener(this);
cp3.add(dd);
dd.addActionListener(this);
cp3.add(ee);
ee.addActionListener(this);
cp3.add(ff);
ff.addActionListener(this);
aa.setVisible(false);
bb.setVisible(false);
cc.setVisible(false);
dd.setVisible(false);
ee.setVisible(false);
ff.setVisible(false);
JMenuBar mainMenu = new JMenuBar();
setJMenuBar(mainMenu);
JMenu editMenu = new JMenu("编辑");
JMenu viewMenu = new JMenu("查看");
JMenu helpMenu = new JMenu("帮助");
mainMenu.add(editMenu);
mainMenu.add(viewMenu);
mainMenu.add(helpMenu);
copy = new JMenuItem(" 复制");
paste = new JMenuItem(" 粘贴");
KeyStroke copyks=KeyStroke.getKeyStroke(KeyEvent.VK_C,Event.CTRL_MASK);
copy.setAccelerator(copyks);//设置退出菜单选项加上快捷键
KeyStroke pasteks=KeyStroke.getKeyStroke(KeyEvent.VK_V,Event.CTRL_MASK);
paste.setAccelerator(pasteks);//设置退出菜单选项加上快捷键
editMenu.add(copy);
editMenu.add(paste);
copy.addActionListener(this);
paste.addActionListener(this);
t = new JMenuItem("●标准型");
s = new JMenuItem(" 科学型");
viewMenu.add(t);
viewMenu.add(s);
t.addActionListener(this);
s.addActionListener(this);
help = new JMenuItem(" 帮助主题");
about = new JMenuItem(" 关于计算器");
me = new JMenuItem(" 作者主页");
helpMenu.add(help);
helpMenu.add(about);
helpMenu.add(me);
help.addActionListener(this);
about.addActionListener(this);
me.addActionListener(this);
addWindowListener(new WindowDestroyer());//结束窗口
}
public void actionPerformed(ActionEvent e)
{ //响应动作代码
if(first==1)
text.setText("");
first=0;//第一次把文本框0.清空
Object temp = e.getSource();
if(temp==copy)
{
copycontent = text.getText();
}
if(temp==paste)
{
text.setText(text.getText()+copycontent);
}
if(temp==t)
{ //标准
sixteen.setVisible(false);
ten.setVisible(false);
eight.setVisible(false);
two.setVisible(false);
t.setText("●标准型");
s.setText(" 科学型");
aa.setVisible(false);
bb.setVisible(false);
cc.setVisible(false);
dd.setVisible(false);
ee.setVisible(false);
ff.setVisible(false);
}
if(temp==s)
{ //科学
sixteen.setVisible(true);
ten.setVisible(true);
eight.setVisible(true);
two.setVisible(true);
t.setText(" 标准型");
s.setText("●科学型");
aa.setVisible(true);
bb.setVisible(true);
cc.setVisible(true);
dd.setVisible(true);
ee.setVisible(true);
ff.setVisible(true);
aa.setEnabled(false);
bb.setEnabled(false);
cc.setEnabled(false);
dd.setEnabled(false);
ee.setEnabled(false);
ff.setEnabled(false);
}
if(temp==help)
{ //打开系统帮助文件 要查资料
try
{
String filePath = "C:/WINDOWS/Help/calc.chm";
Runtime.getRuntime().exec("cmd.exe /c "+filePath);
}
catch(Exception eeee)
{
System.out.println("打开系统的计算器出错");
}
}
if(temp==about)
{
JOptionPane.showMessageDialog(frame," Java计算器\n 杨彩 制作\n\n /m/yangcai","关于计算器",JOptionPane.INFORMATION_MESSAGE); ;
}
if(temp==me)
{
try
{
Process p = Runtime.getRuntime().exec("explorer /m/yangcai");
}
catch(Exception eeee)
{
System.out.println("打开指定网页出错");
}
}
try
{
if(temp==sixteen)
{
String hex=text.getText();
int inthex=Integer.parseInt(hex,jin);//先把数变为进制
text.setText(convert.decHex(inthex)) ;
jin=;
aa.setEnabled(true);
bb.setEnabled(true);
cc.setEnabled(true);
dd.setEnabled(true);
ee.setEnabled(true);
ff.setEnabled(true);
num2.setEnabled(true);
num3.setEnabled(true);
num4.setEnabled(true);
num5.setEnabled(true);
num6.setEnabled(true);
num7.setEnabled(true);
num8.setEnabled(true);
num9.setEnabled(true);
}
if(temp==eight)
{
String oct =text.getText();
int intoct=Integer.parseInt(oct,jin);
text.setText(convert.decOct(intoct)) ;
jin=8;
aa.setEnabled(false);
bb.setEnabled(false);
cc.setEnabled(false);
dd.setEnabled(false);
ee.setEnabled(false);
ff.setEnabled(false);
num2.setEnabled(true);
num3.setEnabled(true);
num4.setEnabled(true);
num5.setEnabled(true);
num6.setEnabled(true);
num7.setEnabled(true);
num8.setEnabled(false);
num9.setEnabled(false);
}
if(temp==two)
{
String bin=text.getText();
int intbin=Integer.parseInt(bin,jin);
text.setText(convert.decBin(intbin));
jin=2;
aa.setEnabled(false);
bb.setEnabled(false);
cc.setEnabled(false);
dd.setEnabled(false);
ee.setEnabled(false);
ff.setEnabled(false);
num2.setEnabled(false);
num3.setEnabled(false);
num4.setEnabled(false);
num5.setEnabled(false);
num6.setEnabled(false);
num7.setEnabled(false);
num8.setEnabled(false);
num9.setEnabled(false);
}
if(temp==ten)
{
String dec=text.getText();
int intdec=Integer.parseInt(dec,jin);
// text.setText(convert.decDec(intdec)); //本句会把变成
text.setText(intdec+"");
jin=;
aa.setEnabled(false);
bb.setEnabled(false);
cc.setEnabled(false);
dd.setEnabled(false);
ee.setEnabled(false);
ff.setEnabled(false);
num2.setEnabled(true);
num3.setEnabled(true);
num4.setEnabled(true);
num5.setEnabled(true);
num6.setEnabled(true);
num7.setEnabled(true);
num8.setEnabled(true);
num9.setEnabled(true);
}
}
catch(Exception ee)
{
System.out.println("转换出错,可能你没有输入任何字符");
text.setText("转换出错");
clear=false;
}
if(temp==backspace)
{ //退格
String s = text.getText();
text.setText("");
for (int i = 0; i < s.length() - 1; i++)
{
char a = s.charAt(i);
text.setText(text.getText() + a);
}
}
if (temp==ce)
{
text.setText("0.");
clear=true;
first=1;
}
if (temp==c)
{
text.setText("0."); ;
clear=true;
first=1;
}
if(temp==num0)
{
if(clear==false)//判断是否点击了符号位
text.setText("");
text.setText(text.getText()+"0");
}
if(temp==num1)
{
if(clear==false)
text.setText("");
text.setText(text.getText()+"1");
clear=true;//第二次不在清空(前二句)
}
if(temp==num2)
{
if(clear==false)
text.setText("");
text.setText(text.getText()+"2");
clear=true;
}
if(temp==num3)
{
if(clear==false)
text.setText("");
text.setText(text.getText()+"3");
clear=true;
}
if(temp==num4)
{
if(clear==false)
text.setText("");
text.setText(text.getText()+"4");
clear=true;
}
if(temp==num5)
{
if(clear==false)
text.setText("");
text.setText(text.getText()+"5");
clear=true;
}
if(temp==num6)
{
if(clear==false)
text.setText("");
text.setText(text.getText()+"6");
clear=true;
}
if(temp==num7)
{
if(clear==false)
text.setText("");
text.setText(text.getText()+"7");
clear=true;
}
if(temp==num8)
{
if(clear==false)
text.setText("");
text.setText(text.getText()+"8");
clear=true;
}
if(temp==num9)
{
if(clear==false)
text.setText("");
text.setText(text.getText()+"9");
clear=true;
}
if(temp==aa)
{
text.setText(text.getText()+"A");
}
if(temp==bb)
{
text.setText(text.getText()+"B");
}
if(temp==cc)
{
text.setText(text.getText()+"C");
}
if(temp==dd)
{
text.setText(text.getText()+"D");
}
if(temp==ee)
{
text.setText(text.getText()+"E");
}
if(temp==ff)
{
text.setText(text.getText()+"F");
}
if(temp==dian)
{
clickable=true;
for (int i = 0; i < text.getText().length(); i++)
if ('.' == text.getText().charAt(i))
{
clickable=false;
break;
} //第一层判断是否里面含有小数点;
if(clickable==true)//第二坛判断
text.setText(text.getText()+".");
}
try
{
if(temp==jia)
{ //加法
qian=Double.parseDouble(text.getText());
fuhao="+";
clear=false;
}
if(temp==jian)
{
qian=Double.parseDouble(text.getText());
fuhao="-";
clear=false;
;
}
if(temp==cheng)
{
qian=Double.parseDouble(text.getText());
fuhao="*";
clear=false;
}
if(temp==chu)
{
qian=Double.parseDouble(text.getText());
fuhao="/";
clear=false;
}
if(temp==deng)
{
double ss=Double.parseDouble(text.getText());
text.setText("");
if(fuhao=="+")
text.setText(qian+ss+"");
if(fuhao=="-")
text.setText(qian-ss+"");
if(fuhao=="*")
text.setText(qian*ss+"");
if(fuhao=="/")
text.setText(qian/ss+"");
clear=false;//要清空前一次的数据
;
}
if(temp==kai)
{
String s = text.getText();
if (s.charAt(0) == '-')
{
text.setText("负数不能开根号");
}
else
text.setText(Double.toString(java.lang.Math.sqrt(Double.parseDouble(text.getText()))));
clear=false;
}
if(temp==diao)
{
if (text.getText().charAt(0) == '0'&&text.getText().length() == 1)
{
text.setText("除数不能为零");
}
else
{
boolean isDec = true;
int i, j, k;
String s = Double.toString(1 / Double.parseDouble(text.getText()));
for (i = 0; i < s.length(); i++)
if (s.charAt(i) == '.')
break;
for (j = i + 1; j < s.length(); j++)
if (s.charAt(j) != '0')
{
isDec = false;
break;
}
if (isDec == true)
{
String stemp = "";
for (k = 0; k < i; k++)
stemp += s.charAt(k);
text.setText(stemp);
}
else
text.setText(s);
}
clear=false;
}
if(temp==qiuyi)
{
text.setText("0");
clear=false;
}
if (temp == fu)
{ //导师,此方法参考书中例子
boolean isNumber = true;
String s = text.getText();
for (int i = 0; i < s.length(); i++)
if (! (s.charAt(i) >= '0' && s.charAt(i) <= '9' || s.charAt(i) == '.' ||
s.charAt(i) == '-'))
{
isNumber = false;
break;
}
if (isNumber == true)
{
//如果当前字符串首字母有'-'号,代表现在是个负数,再按下时,则将首符号去掉
if (s.charAt(0) == '-')
{
text.setText("");
for (int i = 1; i < s.length(); i++)
{
char a = s.charAt(i);
text.setText(text.getText() + a);
}
}
//如果当前字符串第一个字符不是符号,则添加一个符号在首字母处
else
text.setText('-' + s);
}
}
}
catch(Exception eee)
{
System.out.println("运算时,首先输入数字或字符");
text.setText("运算出错");
clear=false;
}
}
class WindowDestroyer extends WindowAdapter
{ //退出窗口动作
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
class objConversion
{ //导师,本进制类参考了CSMD类转换例子
public void objConversion ()
{
}
public String decDec (int decNum)
{ //
String strDecNum = Integer.toString(decNum);
for (int i = strDecNum.length(); i < 3; i++)
{
strDecNum = "0" + strDecNum;
}
// return strDecNum;
return invert (strDecNum, 5);
}
public String decHex (int decNum)
{ // to
String strHexNum = "";
int currentNum = 0;
while (decNum != 0)
{
if (decNum > )
{
currentNum = decNum % ;
decNum /= ;
}
else
{
currentNum = decNum;
decNum = 0;
}
switch (currentNum)
{
case : strHexNum += "F";
break;
case : strHexNum += "E";
break;
case : strHexNum += "D";
break;
case : strHexNum += "C";
break;
case : strHexNum += "B";
break;
case : strHexNum += "A";
break;
default: strHexNum += Integer.toString(currentNum);
break;
}
}
return invert (strHexNum, 2);
}
public String decOct (int decNum)
{ // to 8
String strOctNum = "";
while (decNum != 0)
{
if (decNum > 7)
{
strOctNum += Integer.toString(decNum % 8);
decNum /= 8;
}
else
{
strOctNum += Integer.toString(decNum);
decNum = 0;
}
}
return invert (strOctNum, 3);
}
public String decBin (int decNum)
{ // to 2
String strBinNum = "";
while (decNum != 0)
{
if (decNum > 1)
{
strBinNum += Integer.toString(decNum % 2);
decNum /= 2;
}
else
{
strBinNum += Integer.toString(decNum);
decNum = 0;
}
}
return invert (strBinNum, 8);
}
private String invert (String strNum, int minLength) //转换长度
{
String answer = "";
int length = strNum.length();
if (length < minLength)
{
for (int padding = (minLength - length); padding > 0; padding--)
{
answer += "0";
}
}
for (int i = length; i > 0; i--)
{
answer += strNum.charAt (i - 1);
}
return answer;
}
}
public static void main(String arg[])//产生窗口
{
calculator win = new calculator();
win.setVisible(true);
}
}
DSP开发——代码保护模块CSM及DSP的存储资源
代码保护模块CSM与DSP存储资源的整合讨论:1. CSM的功能与作用
CSM是为保护DSP的代码而设计的,它就像一把锁,防止逆向工程获取源代码。对于需要版权保护的软件,CSM至关重要,它能区分DSP的两种状态:安全与非安全。非安全状态下,允许调试和访问所有存储;而在安全状态下,只允许安全区域的代码访问存储,阻止外来代码干涉。2. DSP的存储资源详解
DSP的存储区域包括SARAM(RAM)、FLASH、BOOT ROM、OTP和外设接口等。其中,安全区域包括L0~L3 SARAM、FLASH、OTP和配置寄存器,非安全区域则包括M0~M1 SARAM、L4~L7 SARAM、BOOT ROM等特定区域。3. CSM的使用与上锁步骤
上锁过程涉及密码区、口令寄存器、状态控制寄存器和预留区。首先,写入8字节密码,然后清除预留区,最后通过CSMSCR设置上锁。解锁时,需要执行伪读和写入正确密码。4. 实战操作示例
上锁可以通过CCS工具、CMD文件和汇编语言,以及使用FLASH API完成。其中,使用C++编写的板级支持包简化了接口管理,提升开发效率。5. 注意事项与效率提升
在开发过程中,要避免全F或全0的密码设置,同时注意在擦除flash时的电源管理。整理好寄存器配置和封装成API可以极大提高效率,新手友好的板级支持包可显著减少查手册的重复劳动。