cc2430有个写好的样例程序,里面AES的主函数里面包含如下两个函数:
aes_main()
{
aes(); 仅仅是AES加密,把明文分成16bit,设置加密模式等等,没有设涉及到任何DMA的设置问题
aesdma(); AES加载密钥、加密时的DMA数据配置结构等等的设置
}
为什么AES加密和DMA的设置分开来呢?不是应该先设置DMA数据配置结构等,然后加载KEY ,再设置DMA数据配置结构等,加载IV,最后设置DMA数据配置结构等,加密么?
这样分开来行得通么?为什么啊?
按照cc2430提供的样例程序,cc2430就知道什么时候加载密钥和KEY,什么时候加密了么?DMA的那些设置就能和加载密钥、KEY、加密对应起来了么?
AES加密模块
DMA数据传送模块
两个不相关的模块分开初始化有什么问题呢?
呵呵
至于什么时候加密模块工作
那是你通过DMA把数据送入BUF然后启动加密模块
工作完成,交收DMA把密文送到你指定的地方后
中断通知你一下.这个时候加密结束
至于其它的东西什么时候做,那都是程序控制的哈
不是很明白你说的。他们分开初始化这个没问题,但是当设置了两条DMA通道准备加密的时候,那个例子程序仅仅是把开始加密的那一位设置成1,cc2430难道知道调用那个AES加密的程序么?
还有一个问题是,样例程序上加载KEY的时候,没有给他一个DMA通道。难道加载KEY不需要通过DMA通道把密钥传给AES么?否则怎么让KEY进入AES模块呢?