完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
你好,
我正在尝试Bootloader和“USB HID引导加载程序”的BootloadEdvices程序。 如果按下SWI2,则执行引导加载程序,并使用引导加载程序对可引导加载的应用程序进行编程。 如果未被推送,则可直接执行可引导加载的应用程序。 请参阅下面的Bootloader的.c。它可以运行良好。 我想知道这是否正确。请告诉我是否应该带些东西。 int() { /*指示引导加载程序正在运行。*/ PWMXSTATE(); PWMU TrimGeRead命令(PWMY掩码,PWMYCMDYSTART); 如果(PiNSWSWRADE()= 0){ /*进入Bootloader等待应用程序更新。*/ BooLoad ServStiGRunRyType(BooBooLoTyStaseBTLDR); BooLoad EngestSo(); } 否则{ BooLoad ServStIGRunRyType(BooLoad EngestAppApp); BooLoad EngestSo(); } /BooBooLoSistAcess()永不返回。*/ (;) { } } 最好的问候, 约奇 以上来自于百度翻译 以下为原文 Hello, I am trying the Bootloader and the Bootloadable programs of "USB HID Bootloader". If the SW_2 is pushed, the Bootloader is executed and the Bootloadable application is programmed by using the Bootloader Host. If it is not pushed, the Bootloadable application is executed directly. Please see main.c of the Bootloader below. It can run well. I wonder if this is correct. Please tell me if there is something that I should bring. int main() { /* Indicates that the bootloader is running. */ PWM_Start(); PWM_TriggerCommand(PWM_MASK,PWM_CMD_START); if(Pin_SW_Read()== 0){ /* Enters the bootloader to wait for the application update. */ Bootloader_SET_RUN_TYPE(Bootloader_START_BTLDR); Bootloader_Start(); } else{ Bootloader_SET_RUN_TYPE(Bootloader_START_APP); Bootloader_Start(); } /* Bootloader_Start() never returns. */ for (;;) { } } Best regards, Yocchi |
|
相关推荐
7个回答
|
|
也许你正在寻找这个API函数。
空引导装载器退出(UTIN AppID) 调度指定的应用程序并执行软件重置以启动指定的应用程序。 如果指定的应用程序无效,则Bootloader(ValueBootLoabable()函数执行的结果将返回CyReTyExcel以外的其他程序,启动引导程序应用程序。 参数: 阿皮德 申请开始: BootloadReExtIOToBTDR-引导加载程序将在软件重置时启动。 {BooTouleRoXiToTo-BTLDB; BooLoad EnExtIoToBTLDBY1-可引导加载应用程序1将在软件重置上启动。 在软件重置时启动BooLoad EnExtIoToBTLDBY2-可引导加载应用程序2。只有在组件定制器中启用“双应用”选项时才可用。 这些描述来自“Bootloader和BootloadLabor组件数据表V1.5”。 当做, 诺里基 以上来自于百度翻译 以下为原文 Maybe you are looking for this API function. void Bootloader_Exit (uint8 appId) Schedules the specified application and performs a software reset to launch a specified application. If the specified application is not valid, the Bootloader (the result of the ValidateBootloadable() function execution returns other than CYRET_SUCCESS, the Bootloader application is launched. Parameters: appId The application to be started: □ Bootloader_EXIT_TO_BTLDR - The Bootloader application will be started on a software reset. □ Bootloader_EXIT_TO_BTLDB; □ Bootloader_EXIT_TO_BTLDB_1 - Bootloadable application # 1 will be started on a software reset. □ Bootloader_EXIT_TO_BTLDB_2 - Bootloadable application # 2 will be started on a software reset. Available only if the "Dual-application" option is enabled in the component customizer. These descriptions come from the "Bootloader and Bootloadable component datasheet v1.5" Regards, Noriaki |
|
|
|
你好,YOCCHI SAN,
为了直接执行可引导加载的应用程序,调度可引导加载和执行软件重置。建议在应用程序调度之前验证应用程序。 当SW2被按下时,使用BooLoad EngestSo()。它将验证应用程序、运行通信子程序、等待引导加载、调度引导加载和重置设备。 以上来自于百度翻译 以下为原文 Hello Yocchi-San, Inorder to directly execute the the Bootloadable application, schedule Bootloadable and perform software reset. It is recommended to validate the application before scheduling the application. When SW_2 is pushed, use Bootloader_Start(). It will validate the application, run communication subroutine, wait for bootloading, schedule the Bootloadable and reset the device. |
|
|
|
你好,吉恩,
请具体告诉我示例代码。 最好的问候, 约奇 以上来自于百度翻译 以下为原文 Hello geon, Please tell me the example code concretely. Best regards, Yocchi |
|
|
|
你好,YOCCHI SAN, 请使用附加代码和附加工作区。 项目包括: 定义了BooLoad ServActuvApp(BooTouleR.MdY.BtLDbAcActuvy0) int() { *将初始化/启动代码放在此处(例如MyStimSistAd())*/ 囊状的; 如果(PiNead Read()= 0) { /*打开蓝色LED */ BooLoad EnStasuSuxLoad编写(0U); CyDelay(500); /*启动引导加载程序通信。这将等待引导加载,如等待命令*/ BooLoad EngestSo(); } 其他的 { *打开红色LED */ BooLoad EnStasuxGrimyLoad编写(0U); CyDelay(500); /*验证和调度可引导加载。执行软件重置*/ 如果(CyReTyRealEng= = BooLoad)验证有效BooToLable(BooLoad SeriActuvApp) { BooLoad Enter StIyRunyType(BooDouleLoTraceE.BTLDB); CysAcReSeSe(); } } (;) { *将您的应用程序代码放在这里。*/ } } FoUMLION跳到BooTooBabel.CyWrk.CaseV04.Zip 2.5兆字节 以上来自于百度翻译 以下为原文 Hello Yocchi-San, Please make use of appended code and attached workspace. #include #define Bootloader_activeApp (Bootloader_MD_BTLDB_ACTIVE_0) int main() { /* Place your initialization/startup code here (e.g. MyInst_Start()) */ CyGlobalIntEnable; if(Pin_Read()==0) { /* Turn on blue LED */ Bootloader_Status_Blue_Write(0u); CyDelay(500); /* Start bootloader communication. This will wait for bootloading as configured by Wait for command*/ Bootloader_Start(); } else { /* Turn on red LED */ Bootloader_Status_Green_Write(0u); CyDelay(500); /* Validate and schedule bootloadable. Perform software reset*/ if(CYRET_SUCCESS == Bootloader_ValidateBootloadable(Bootloader_activeApp)) { Bootloader_SET_RUN_TYPE(Bootloader_SCHEDULE_BTLDB); CySoftwareReset(); } } for(;;) { /* Place your application code here. */ } } |
|
|
|
你好,吉恩, 谢谢你的支持。 总之,我简化了你发给我的代码。 它可以运行良好。这是对的吗? int() { /*指示引导加载程序正在运行。*/ PWMXSTATE(); PWMU TrimGeRead命令(PWMY掩码,PWMYCMDYSTART); 如果(PiNSWSWRADE()= 0){ /*为应用程序更新调度引导程序。*/ BooLoad ServStIGRunRyType(BooLoad ErthPosieE.BTLDR); CysAcReSeSe(); } 否则{ BooLoad EngestSo(); } (;) { } } 最好的问候, 约奇 以上来自于百度翻译 以下为原文 Hello geon, Thank you for your support. In conclusion, I simplified the code that you sent me. It can run well. Is this right? int main() { /* Indicates that the bootloader is running. */ PWM_Start(); PWM_TriggerCommand(PWM_MASK,PWM_CMD_START); if(Pin_SW_Read()== 0){ /* Schedules the Bootloader for the application update. */ Bootloader_SET_RUN_TYPE(Bootloader_SCHEDULE_BTLDR); CySoftwareReset(); } else{ Bootloader_Start(); } for (;;) { } } Best regards, Yocchi |
|
|
|
你好,YOCCHI SAN, 对。正如我们所讨论的,总是建议在调度之前验证可引导的应用程序。 以上来自于百度翻译 以下为原文 Hello Yocchi-San, Yes. As we discussed it is always recommended to validate the bootlodable application before scheduling. |
|
|
|
你好,吉恩, 我非常感谢你的帮助。 最好的问候, 约奇 以上来自于百度翻译 以下为原文 Hello geon, I really appreciate your help. Best regards, Yocchi |
|
|
|
只有小组成员才能发言,加入小组>>
750个成员聚集在这个小组
加入小组2062 浏览 1 评论
1818 浏览 1 评论
3628 浏览 1 评论
请问可以直接使用来自FX2LP固件的端点向主机FIFO写入数据吗?
1757 浏览 6 评论
1504 浏览 1 评论
CY8C4025LQI在程序中调用函数,通过示波器观察SCL引脚波形,无法将pin0.4(SCL)下拉是什么原因导致?
491浏览 2评论
CYUSB3065焊接到USB3.0 TYPE-B口的焊接触点就无法使用是什么原因导致的?
347浏览 2评论
CX3连接Camera修改分辨率之后,播放器无法播出camera的画面怎么解决?
407浏览 2评论
352浏览 2评论
使用stm32+cyw43438 wifi驱动whd,WHD驱动固件加载失败的原因?
844浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-14 13:33 , Processed in 1.002945 second(s), Total 57, Slave 52 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号