完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本文借鉴于视频:https://v.qq.com/x/page/n0194wmuxss.html?ptag=developer_kaifakuai_com 这里更加深入的学习了目录的结构: 源代码文档极其说明: 大致的程序流程图如下: 在source insight里参看user_main.c文件可以查看到user_init函数,这是用户程序入口函数: /****************************************************************************** * FunctionName : user_init * Description : entry of user application, init user function here * Parameters : none * Returns : none *******************************************************************************/ void user_init(void) { os_printf("software version:%sn", SOFTWARE_VERSION); //通过串口打印软件版本号 et_uchar result=0; if(get_fac_norm_mode(&result) != SPI_FLASH_RESULT_OK) { os_printf("get_fac_norm_mode error, NORMAL moden"); } if(result == FAC_MODE) { os_printf("run in factory moden"); uart_init_new_uart1(BIT_RATE_115200); UART_SetPrintPort(UART1); uart_init_new(BIT_RATE_115200, result); return; } os_printf("run in normal moden"); //if define IR_DEMO, ir rx or tx test #ifdef IR_DEMO struct station_config config; memset(&config, 0, sizeof(config)); wifi_set_opmode(STATION_MODE); wifi_station_set_config_current(&config); //if define IR_RX, ir rx test #ifdef IR_RX ir_rx_init(); //ir tx test #else ir_tx_init(0); xTaskCreate(ir_tx_key, "ir_tx_key", 256, NULL, 2, NULL); #endif #else key_gpio_t key; struct station_config config; struct ip_info info; // show logo user_show_logo(); //通过OLED显示logo if (RETURN_OK != user_get_work_mode(&work_mode)) { os_printf("get work mode fail !!!n"); return; } if (RETURN_OK != user_init_work_mode(work_mode, result)) { os_printf("init work mode fail !!!n"); return; } //wifi event handle wifi_set_event_handler_cb(et_wifi_event_cb); memset(&key, 0, sizeof(key_gpio_t)); key.key_gpio_pin = AIRKISS_KEY_IO_PIN; key.key_num = AIRKISS_KEY_IO_NUM; airkiss_key_init(&key); wifi_set_opmode(STATION_MODE); wifi_reconnect_start_flag = 0; xTaskCreate(airkiss_key_poll_task, "smartconfig_task", 256, NULL, 2, NULL); wifi_led_init(); memset(&config, 0, sizeof(struct station_config)); if(wifi_station_get_config_default(&config) == true) { os_printf("ssid=%sn", config.ssid); wifi_station_set_config_current(&config); //for static ip set /*wifi_station_dhcpc_stop(); IP4_ADDR(&info.ip, 192, 168, 1, 43); IP4_ADDR(&info.gw, 192, 168, 1, 1); IP4_ADDR(&info.netmask, 255, 255, 255, 0); wifi_set_ip_info(STATION_IF, &info);*/ } os_timer_disARM(&test_timer); os_timer_setfn(&test_timer, (os_timer_func_t *)user_esp_platform_check_ip, NULL); os_timer_arm(&test_timer, 1000, 0); #endif } 这里主要就是设置wifi的工作模式还有其他的一些初始化工作,到了这里我可以验证我们的程序是不是真的编译成功并且下载OK了没有,这里我们在第一句 os_printf("software version:%sn", SOFTWARE_VERSION); 打印软件版本的后面加上一句 os_printf("maid:chengdong QQ:384710930n");来显示自己独特的语句,如果下载固件后我们能够在串口助手中看到maid:chengdong QQ:384710930这句话则说明现在下载的固件真的是我们自己手中的固件了,在虚拟机中编译下载固件(具体操作请参看之前的帖子https://bbs.elecfans.com/forum.p ... =1097878&extra=)之后,这里简述一下下载方式,进入虚拟机启动终端之后: 1.挂载共享文件:sudo ./mount.sh 2.进入~/Share/SDK/et_app目录运行之下的gen_misc.sh脚本进行编译:cd ~/Share/SDK/et_app 执行 ./gen_misc.sh 3.最后生成的固件放在了 ~/Share/SDK/bin/upgrade/中:user1.2048.new.3.bin 4.把生成的user1.2048.new.3.bin下载到开发板中 5.下载固件的时候只选择user1.2048.new.3.bin就可以了 其中编译结果界面如下: |
|
相关推荐
1 个讨论
|
|
只有小组成员才能发言,加入小组>>
[小e体验板] 【小体积大智慧】关于体验板的技术问题,看这一篇就够了
2854 浏览 4 评论
【小e1开发板试用体验】分析程序架构四~/Share/SDK/makefile分析
3611 浏览 1 评论
6700 浏览 19 评论
29046 浏览 59 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 06:52 , Processed in 0.553988 second(s), Total 72, Slave 54 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号