完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
你好,目前已使用CH571量产了一个项目(未使用BLE蓝牙功能),已开发使用了除BLE以外的所有资源,性价比很高。
现希望将硬件AES替代当前的软AES,集成到自定义bootloader中,以期达成两个优化目标: 1、大量节省代码空间。 2、大幅缩短执行时间。 关于你们官方的推荐函数(函数库libCH57x_ROM.a),调用RF初始化部分函数RF_RoleInit(),代码量约35KB以上(软件AES仅16KB左右),无法达成第一个优化目标。 因此,希望技术支持(不限于)以下几种途径: 1、更新函数库libCH57x_ROM.a,在函数库增加一个AES模块专用的简洁函数; 2、单独开放AES模块的硬件应用资料; 3、指出现有函数库中能达成以上目标的函数; 同时,希望可以脱离BLE单独使用RF模块,实现代码空间和资源需求更为灵活的无线连接。 期待你们的回复,谢谢~ |
|
相关推荐
3个回答
|
|
把role初始化换成 BLE_RegInit(); 其他的保持,就可以了。 LIB里面未参与编译的函数是不占用代码空间的
|
|
|
|
你好,已按照你的方式试验,未能正确加解密。
测试代码: BLE_RegInit();//加密秘钥16个字节也就是128?bituint8_t?key[16]={0X00,0X11,0X22,0X33,0X44,0X55,0X66,0X77,0X88,0X99,0XAA,0XBB,0XCC,0XDD,0XEE,0XFF};//需要加密的数据(保证16个字节,不够的自己填充)uint8_t?source_buf[16]={0X00,0X01,0X02,0X03,0X04,0X05,0X06,0X07,0X08,0X09,0X0A,0X0B,0X0C,0X0D,0X0E,0X0F};//?加密后数据存放区uint8_t?encrypted_buf[16];//?解密后数据存放区uint8_t?deccrypted_buf[16];//?开始加密,加密后的数据存放到encrypted_buf,LL_Encrypt(?key,?source_buf,?encrypted_buf?);//?开始解密,将解密后的数据存到deccrypted_buf,ch579?11usLL_Decrypt(?key,?encrypted_buf,?deccrypted_buf?);加密测试结果,全为0: 解密测试结果,全为0: 在使用 BLE_RegInit();函数初始化,依然连接了一些函数,共约占用了6~8KB空间(部分太长没有截图): 同时还占用了不少的RAM空间,约2~3KB: |
|
|
|
void RF_Init(void) { uint8_t state; rfConfig_t rfConfig; uint8_t key[16] = {0X00,0X11,0X22,0X33,0X44,0X55,0X66,0X77,0X88,0X99,0XAA,0XBB,0XCC,0XDD,0XEE,0XFF}; //?需要加密的数据(保证16个字节,不够的自己填充) uint8_t source_buf[16]={0X00,0X01,0X02,0X03,0X04,0X05,0X06,0X07,0X08,0X09,0X0A,0X0B,0X0C,0X0D,0X0E,0X0F}; uint8_t enc_buf[16]; uint8_t en_buf[16]; tmos_memset(&rfConfig, 0, sizeof(rfConfig_t)); taskID = TMOS_ProcessEventRegister(RF_ProcessEvent); rfConfig.accessAddress = 0x71764129; // 禁止使用0x55555555以及0xAAAAAAAA ( 建议不超过24次位反转,且不超过连续的6个0或1 ) rfConfig.CRCInit = 0x555555; rfConfig.Channel = 8; rfConfig.Frequency = 2480000; rfConfig.LLEMode = LLE_MODE_BASIC | LLE_MODE_EX_CHANNEL; // 使能 LLE_MODE_EX_CHANNEL 表示 选择 rfConfig.Frequency 作为通信频点 rfConfig.rfStatusCB = RF_2G4StatusCallBack; rfConfig.RxMaxlen = 251; state = RF_Config(&rfConfig); LL_Encrypt(key,source_buf,enc_buf); PRINT(" LL_Encrypt:n"); for(state=0;state<16;state++) { PRINT(" %x ", enc_buf[state]); } PRINT(" n "); LL_Decrypt(key,enc_buf,en_buf); PRINT(" LL_Decrypt:n"); for(state=0;state<16;state++) { PRINT(" %x ", en_buf[state]); } PRINT(" n "); PRINT("rf 2.4g init: %xn", state); { // RX mode state = RF_Rx(TX_DATA, 10, 0xFF, 0xFF); PRINT("RX mode.state = %xn", state); } // { // TX mode // tmos_set_event( taskID , SBP_RF_PERIODIC_EVT ); // } } |
|
|
|
只有小组成员才能发言,加入小组>>
518 浏览 1 评论
CH579M+RT-Thread,RTC从Sleep模式唤醒失败是什么原因?
2901 浏览 2 评论
2397 浏览 1 评论
865浏览 2评论
683浏览 1评论
riscv-none-embed-objcopy: \'PWM_Output.elf\': No such file这个咋解决,
415浏览 1评论
518浏览 1评论
请教一下,Mounriver 编译不成功:找不到库文件,怎么整
810浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 16:29 , Processed in 0.921498 second(s), Total 50, Slave 44 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号