|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
我大学毕业后在北京一家研究所做了三年的FPGA,主要是做加密算法的实现。两年多时间里,做了DES,3DES,AES,RSA等算法的verilog实现。其中,DES和AES是下的原码自己改正后用;RSA没合适的原码,是自己先写的C实现,后做的VERILOG实现。芯片用的是ALTERA的cyclone12和XILINX的spartan2-400。由于银子给得太少,合同期没满就走人了,但为此支付了两万元的违约金。没办法,要上保险就得转档案,那就得交钱。老美每年都抨击中国没人权,这是有道理的。但还是要走,一是因为给的钱少,二是因为在所里已没有发展了。
出来后到一个搞安全的公司里做固件(就是汇编语言)开发,从FPGA转到了单片机。之所以没有继续做FPGA,一是没找到合适的职位,二是想干点别的,拓展一下自己的能力。在这里做了一年多的固件开发后,感觉自己的学到了很多东西,不只是在汇编的编程上,还有程序的架构能力的提高。用汇编写出来的东西,的确是简洁高效,有很多技巧在里面。我正在设计的一个固件,MCU程序空间是8K,写完后只剩了几十个字节,其中的实现的功能有:
1.usb通讯。
2.两级文件系统支持(支持7种文件类型和多种文件相关的属性控制)。
3.AES算法。
4.HMAC-MD5算法。
5.PIO口实现的I2C以存取EEPROM。
6.一个虚拟机(由我公司另一个同事做的编译器和实现)。
这些东西要用C写,绝对放下下。这就是用汇编写的原因。程序空间和运行时间就是硬道理,越小越快,你的产品就越有竞争力。要成为一个高手,不仅要有做系统观念,也要注意细节的实现,也就是说,既要有广度,也要有深度。
初来乍到,写了一点心得,请大家多指正。 |
|