cc2640À¶ÑÀоƬÈí¼þ¿ª·¢Ö¸µ¼ËµÃ÷Îļþ(6)

2018-12-04 16:58

ÖÂRTOSΪClock_Struct·ÖÅäRTOSµÄÏÞÖÆ¶Ñ¡£

Ò»°ã¶øÑÔÒª¾¡¿ÉÄܵÄÔڹᴩÕû¸ö¹¤³ÌÖгõʼ»¯Ê±ÖÓºÍRTOSʵÌå¡£Èç¹û±ØÐëʹÓô´½¨RTOSʵÌ壬ÄÇôRTOS¶Ñ¾Í¿ÉÄÜÐèÒªÔÚappBLE.cfgÖнøÐе÷Õû´óС¡£

3.12ʹÓñ߽繤¾ßÀ´µ÷½ÚRAM & FlashµÄ±ß½çÅäÖÃ

±ß½ç¹¤¾ß£¨boundary.exe£©ÔÚµ÷Õû¸÷×ÔµÄÔ¤´¦Àí·ûʱ·Ç³£ÊµÓã¬ICALL_STACK0_ADDR(flash)ºÍICALL_RAM0_ADDR(RAM)£¬ÕâЩ±ß½ç¶¼ÊÇÔÚÓ¦ÓúÍÕ»¹¤³ÌÖ®¼ä¹²ÏíµÄ¡£±ß½ç¹¤¾ß¿ÉÒÔͨ¹ýµ÷Õû±ß½çÀ´°ÑûÓÐÓõ½µÄflash»òÕßRAMµÄ¿Õ¼ä·ÖÅ䏸ӦÓù¤³Ì¡£¸Ã¹¤¾ßÏû³ýÁ˹¤×÷ÔÚË«¹¤³Ì»·¾³ÏÂÊÖ¶¯µ÷ÕûRAMºÍFlash±ß½çµÄ±ØÒª¡£

±ß½ç¹¤¾ß²»»áÐ޸Ť³ÌÎļþ¡£ÁíÍ⣬±ß½ç¹¤¾ßÒ²²»»áÐÞ¸ÄÈκÎÔ´´úÂë»òÈκαàÒë/Á´½ÓµÄÓÅ»¯±íÏÖ¡£¸Ã¹¤¾ßÖ»ÊÇ»ùÓÚ¶Ô¹¤³ÌÓ³ÉäºÍÁ´½ÓÅäÖÃÎļþµÄ·ÖÎöºó¼òµ¥µÄµ÷ÕûRAMºÍFlash¸÷×ÔµÄ±ß½çµØÖ·¡£

±ß½ç¹¤¾ß°²×°Â·¾¶Îª£º

C:\\Program Files (x86)\\Texas Instruments\\Boundary

¸Ã·¾¶ÏÂÓиöReadMe.txtÎļþ£¬¸ÃÎļþ°üº¬Á˸ù¤¾ßµÄÆäËûÐÅÏ¢¡£

3.12.1 ÅäÖñ߽繤¾ß

±ß½ç¹¤¾ßʹÓÃÒ»¸öXMLÎļþ£¬BoundaryConfig.xml£¬Î»ÓÚ¹¤¾ßµÄ°²×°Â·¾¶£¬ÓÃÀ´ÅäÖÃĬÈϵŤ¾ß²Ù×÷¡£ÒªÇó±£³ÖÕâЩĬÈÏÖµ¡£

ÿ¸öSDKÖеŤ³Ì¶¼ÓÐһϵÁеÄÅäÖÃÎļþ£¬ÕâЩÎļþÓÉIDEµÄÁ¬½ÓÆ÷ºÍ±àÒëÆ÷ʹÓÃÀ´ÉèÖûòµ÷ÕûFlashºÍRAM¸÷×ÔµÄÖµ¡£ÕâЩÅäÖÃÎļþλÓÚ¸÷×Ô¹¤³ÌµÄÈçÏÂλÖãº

$BLE_INSTALL$\\Projects\\ble\\\\CC26xx\\\\Config µ±Êǹ¤³Ì£¨ÈçSimpleBLEPeripheral£©²¢ÇÒÊÇIAR»òCCS.

1£® ±ß½çÁ¬½ÓÆ÷ÅäÖÃÎļþ£ºIAR-Boundary.xcl [IAR] or ccsLinkerDefines.cmd [CCS].ÓÃÓÚ¶¨Òå

ICALL_STACK0_ADDRºÍICALL_RAM0_ADDR±ß½çµØÖ·¡£Õâ¸öÎļþλÓÚTOOLS IDEÎļþ¼ÐÏÂÃæ²¢ÇÒÔÚÓе÷½ÚÐèÇóÊÇÓɱ߽繤¾ß¸üС£

2£® ±ß½çCµÄ¶¨ÒåÎļþIAR-Boundary.cdef [IAR] or ccsCompilerDefines.bcfg [CCS].ÏÞÓÚIAR»ò

CCSÁ¬½ÓÆ÷µÄÏÞÖÆ£¬ICALL_STACK0_ADDR±ØÐëÔÚ¸ÃÎļþÖе͍ÒåÓëÁ¬½ÓÆ÷ÖеÄÅäÖÃÎļþÖе͍ÒåÒ»Ö¡£Õâ¸öÎļþλÓÚTOOLS IDEÎļþ¼Ð£¬µ±Óе÷½ÚÐèÇóʱÓɱ߽繤¾ß¸üС£

3.12.2 ±ß½ç¹¤¾ß²Ù×÷

±ß½ç¹¤¾ß£¨boundary.exe£©±»×÷Ϊһ¸öÕ»¹¤³ÌIDE±àÒëºóµÄ²Ù×÷¡£Èç¹ûÐèÒª¶ÔRAMºÍ/»òFlashµÄ±ß½ç½øÐе÷Õû£¬±ß½ç¹¤¾ß»á¸üÐÂÁ¬½ÓÆ÷»ò±àÒëÆ÷¸÷×ÔµÄÅäÖÃÎļþ²¢Éú³ÉÒ»¸ö±àÒëºóµÄ´íÎóÀ´Í¨ÖªÒ»¸ö±ä»¯Ó¦¾­·¢Éú¡£ÎªÁËÅäºÏÅäÖÃÖµµÄ¸üУ¬ÔÚÓ¦ÓúÍÕ»¹¤³ÌÖи÷Ö´ÐÐÒ»¸ö¡°Project

??Rebuild All¡±¡£

³ýÁË´úÂëºÍÄÚ´æµÄ´óСÍ⣬±ß½ç¹¤¾ßÒ²»áÔÚ¼ÆËãICALL_STACK0_ADDRµÄֵʱ¿¼ÂÇÔ¤ÁôÏÂÀ´µÄflashÒ³¡£flash±£ÁôÒ³µÄÀý×Ó°üº¬ÔÚCCAÒ³¡£flashÔ¤ÁôÒ³ÔÚÕ»¹¤³ÌÁ¬½ÓÆ÷ÅäÖÃÎļþÖж¨Òå¡£ Ò»¸öʹÓñ߽繤¾ßµÄÏȾöÌõ¼þ¾ÍÊÇÓ¦ÓúÍÕ»¹¤³ÌµÚÒ»´Î±àÒë±ØÐëÊdzɹ¦µÄ¡£Èç¹û²úÉúÒ»¸öÁ¬½ÓÆ÷´íÎó£¬Ê×ÏÈÓ¦ÑéÖ¤±¾´ÎµÄ¸Ä±äÓÐûÓг¬³öÉ豸flashºÍ/»òRAMÄÚ´æµÄ×î´óÖµ¡£µäÐ͵ÄÁ¬½ÓÆ÷´íÎóÊǵ±Õ»¹¤³ÌÅäÖÃΪʹÓÃÒªÇóÍⲿflashÄÚ´æµÄÌØÐÔ¡£ÒÀ¾Ý´íÎóÊÇ·ñÓÉflash»òRAM¿Õ¼äÔì³É£¬ÔÚ¸÷×ÔµÄÁ¬½ÓÆ÷ºÍ±àÒëÆ÷ÅäÖÃÎļþÖÐÊÖ¶¯µ÷ÕûflashºÍ/»òRAMµÄ±ß½ç¡£Ò»µ©¹¤³Ì¿ÉÒÔÁ¬½Ó³É¹¦£¬±ß½ç¹¤¾ß»áÖØÐµ÷Õû¸÷×Եı߽çֵΪ×î¼ÑÖµ¡£È»ºó°´ÕÕÒªÇóÖ´ÐС°Rebuild All¡±¡£

×¢Ò⣺³ý·ÇIARÅäÖÃΪչʾËùÓеıàÒëÏûÏ¢£¬·ñÔòÊDz»»á¸ø³öΪʲô±ß½ç¹¤¾ß»á²úÉúÒ»¸ö±àÒë´íÎóµÄÔ­ÒòµÄ¡£µ±IARÅäÖÃΪÏÔʾËùÓеıàÒëÏûÏ¢£¬¡°TheProject Boundary Address Has Been Moved¡±¾Í»áÏÔʾÔÚ±àÒëÊä³ö´°¿Ú¡£ÔÚIARÖÐÉèÖÃTools ??Options ??Messages ??Show Build Messages to ¡°All¡±.

Ò»¸ö¹ØÓÚÖ´ÐÐÁ˱߽çÐ޸ĵıàÒëÏûÏ¢µÄÀý×ÓÈçÏ£º

/////////////////////////////////////////////////////////////////////// Boundary Operation Complete

/////////////////////////////////////////////////////////////////////// <<< WARNING >>>

The Project Boundary Address Has Been Moved Or A Config File Change Is Required Rebuild This Project For The Address Or Config File Change To Take Effect ///////////////////////////////////////////////////////////////////////

3.12.3 ½ûֹʹÓñ߽繤¾ß

ΪÁ˽ûÄܱ߽繤¾ß£¬´ò¿ªÕ»¹¤³ÌµÄ¹¤³Ì²Ù×÷ÏîÑ¡Ôñ¡°Build Actions¡±£¨IAR£©»òÕß¡°Steps¡±ÔÚCCS Build window£¨CCS£©£¬È»ºóÏëÏÂͼËùʾһ´¦±àÒëºóÃüÁîÐС£×îºÃÌáǰ¶Ô¸ÃÃüÁî½øÐб¸·ÝÒÔ±ãºóÃæ»áÓõ½±ß½ç¹¤¾ß¡£Ò»µ©±ß½ç¹¤¾ß±»½ûÄÜÁË£¬Á¬½ÓÆ÷ºÍ±àÒëÆ÷¸÷×ÔµÄÅäÖÃÎļþ¾Í¿ÉÒÔÏñ3.10.3ºÍ3.11.4½ÚÖеIJ½Öè½øÐÐÊÖ¶¯±à¼­ÁË¡£

4 Ó¦ÓÃ

ÕâÒ»Õ¾­ÃèÊöSimpleBLEPeipheral¹¤³ÌµÄÓ¦Óò¿·Ö£¬ÕâЩӦÓò¿·Ö¶¼°üº¬£º 1. Pre-RTOS³õʼ»¯£»

2. SimpleBLEPeripheralÈÎÎñ£ºÕâÊǸöÓ¦ÓÃÈÎÎñ£¬ÊÇϵͳÖÐÓÅÏȼ¶×îµÍµÄÈÎÎñ¡£¸ÃÈÎÎñµÄ

´úÂë°üº¬ÔÚ±àÒëÆ÷IDEÎļþ¼Ð¡°Application¡±ÖеÄsimpleBLEPeripheral.cºÍsimpleBLEPeripheral.hÎļþÖС£

3. Icall£ºÒ»¸ö³éÏóÁ˵ÄÕ»ºÍÆäËûÈÎÎñÖ®¼äµÄͨѶ½Ó¿ÚÄ£¿é¡£

×¢Ò⣺GAPRoleÈÎÎñÒ²ÊÇÓ¦Óù¤³Ì¹¤×÷¿Õ¼äµÄÒ»²¿·Ö¡£µ«ÊÇÕâ¸öÈÎÎñµÄ¹¦ÄÜÐÔ¸ü½Ó½üÓÚЭÒéÕ»ËùÒÔÔÚ5.2ÕÂÖÐÃèÊö¡£ 4.1 Start-up in main£¨£©

main£¨£©º¯ÊýÔÚIDE ¡°Startup¡±ÎļþϵÄmain.cÎļþÖУ¬ÊÇÕû¸öÔËÐÐʱ¼äµÄ¿ªÊ¼µã¡£ÕâÀïÒ²Êǰå×ÓÌá³öÖжϽûÄܺÍÇý¶¯³õʼ»¯µÄµØ·½¡£Í¬ÑùÔÚÕâ¸öº¯ÊýÖУ¬µçÔ´¹ÜÀíÒ²»á³õʼ»¯£¬ÈÎÎñ»á¹¹½¨»ò´´½¨¡£ÔÚ×îºóÒ»²½£¬Ê¹ÄÜÖжϣ¬SYS/BIOSÄں˵÷¶Èͨ¹ýµ÷ÓÃBIOS_start()Æô¶¯£¬Ã»Óзµ»Ø£¬¿´µÚ8ÕÅ»ñÈ¡main£¨£©º¯Êýµ½´ïǰµÄÆô¶¯Ë³Ðò£º

Void main() {

PIN_init(BoardGpioInitTable); //enable iCache prefetching VIMSConfigure(VIMS_BASE, TRUE, TRUE); // Enable cache

VIMSModeSet(VIMS_BASE, VIMS_MODE_ENABLED); #ifndef POWER_SAVING

/* Set constraints for Standby, powerdown and idle mode */ Power_setConstraint(Power_SB_DISALLOW); Power_setConstraint(Power_IDLE_PD_DISALLOW); #endif // POWER_SAVING /* Initialize ICall module */ ICall_init();

/* Start tasks of external images - Priority 5 */ ICall_createRemoteTasks();

/* Kick off profile - Priority 3 */ GAPRole_createTask();

SimpleBLEPeripheral_createTask();

/* enable interrupts and start SYS/BIOS */ BIOS_start(); }

Ó¦ÓúÍGAPRoleÈÎÎñÏë3.3ÖÐÃèÊöµÄÒ»Ñù±»¹¹½¨ÁË¡£Õ»ÈÎÎñÔÚIcall_createRemoteTasks()Öб»´´½¨ÁË¡£IcallÄ£¿éͨ¹ýIcall_init()³õʼ»¯ÁË¡£Õû¸öIDE¹¤×÷¿Õ¼äµÄÖ÷Ì⣬main.c´æÔÚÓÚÓ¦Óù¤³Ì£¬ÕâÒâζ×ŵ±Ëü±àÒëºó»á´¦ÓÚÓ¦Óõ÷ÓõÄflashÉÈÇøÖС£ 4.2 ICALL 4.2.1 ½éÉÜ ¼ä½Óµ÷Óÿò¼Ü£¨Icall£©ÊÇÒ»¸öÄ£¿é£¬ÌṩÁËÓ¦ÓÃÃæÏòBLEЭÒéÕ»·þÎñ£¨ÈçBLE-Stack APIs£©ºÍÓÉRTOSÌṩµÄԭʼµÄ·þÎñ£¨ÈçÏß³Ìͬ²½£©µÄ»úÖÆ¡£½áºÏµÄ£¬IcallÔÊÐíÓ¦ÓúÍЭÒéÕ»ÔÚÒ»¸öͳһµÄRTOS»·¾³ÖиßЧµÄ²Ù×÷£¬Í¨Ñ¶ºÍ¹²Ïí×ÊÔ´¡£ Icall¼Ü¹¹µÄºËÐÄ×é³É²¿·ÖÊǵ÷¶ÈÕߣ¬¸Ãµ÷¶ÈÕß´Ù½øÁËÓ¦ÓúÍBLEЭÒéÕ»ÈÎÎñ¼äµÄÓ¦ÓóÌÐò½Ó¿Úͨ¹ýË«¾µÏñ±ß½ç¡£¾¡¹Ü¶àÊýµÄICall½»»¥³éÏó³ÉÁËBLEЭÒéÕ»½Ó¿Ú£¨È磺GAP,HCIµÈ£©£¬Ó¦Óÿª·¢ÕßÒ²ÓбØÒªÃ÷°×ÕâÖÖDZÔڵļܹ¹ÒÔ±ãÓÚÔÚ¶àÏß³ÌRTOS»·¾³ÖÐ×öµ½ºÏÊʵÄBLEЭÒéÕ»²Ù×÷¡£

ICallÄ£¿éÔ´´úÂëÔÚÓ¦Óù¤³ÌÖеġ°ICall¡±&¡°ICallBLE¡± IDEÎļþ¼ÐÖС£

4.2.2 ICall BLEЭÒéÕ»·þÎñ

¾ÍÏñÉÏͼÃèÊöµÄÒ»Ñù£¬ICallÄÚºËʹÓð¸Àý°üº¬ÁËÒ»¸ö·þÎñʵÌ壨ÈçBLEЭÒéÕ»ÈÎÎñ£©ºÍÒ»¸ö¿Í»§¶ËʵÌ壨ÈçÓ¦ÓÃÈÎÎñ£©Ö®¼äµÄͨѶ¡£×¢ÒâICALL¿ò¼Ü²»ÄÜÓëBLEЭÒ鶨ÒåµÄGATT·þÎñ/¿Í»§Ïà»ìÏý¡£ÕâÑù¼Ü¹¹µÄÔ­ÒòÊÇË«ÖØµÄ£ºÎªÁË¿ÉÒÔ·Ö¿ª¸üÐÂÓ¦ÓúÍBLEЭÒéÕ»Ò²ÊÇΪÁËά³Ö»®·Ö×Ôcc2640µÄTI-RTOSÂß¼­²ãµÄÈí¼þµÄÒ»ÖÂÐÔ£¨¾ÍÏëcc254xµÄOSAL£©¡£

ICall BLEЭÒéÕ»·þÎñ³äµ±ËùÓеÄBLE-Stack APIµÄÓ¦Óýӿڡ£µ±Ò»¸öBLEЭÒéÕ»½Ó¿Ú±»Ó¦Óõ÷ÓÃʱ£¬ICallÄ£¿é½«ÃüÁîÊäË͸øBLEЭÒéÕ»£¬Êʵ±µÄʱºò£¬½«À´×ÔBLEÀ¶ÑÀЭÒéÕ»µÄÏûÏ¢·µ»Ø¸øÓ¦Óá£

ÓÉÓÚICallÄ£¿éʱӦÓù¤³ÌµÄÒ»²¿·Ö£¬Ó¦ÓÃÈÎÎñ¿ÉÒÔͨ¹ýÖ±½Óº¯Êýµ÷Ó÷ÃÎÊICall¡£×¢ÒâÓÉÓÚBLEЭÒéÕ»ÒÔ×î¸ßÓÅÏȼ¶Ö´ÐУ¬Ó¦ÓÃÈÎÎñ½«»á×èÈûÖ±µ½»Ø¸´µÄµ½À´¡£Ä³Ð©Ð­ÒéÕ»µÄ½Ó¿Ú¿ÉÄÜ»áÁ¢¼´ÏìÓ¦£¬È»¶øÓ¦ÓÃÏ߳̽«»á×èÈû£¬ÒòΪ¸Ã½Ó¿Úͨ¹ýICallµ÷¶È¸øÁËBLEЭÒéÕ»¡£ÆäËûµÄBLEЭÒéÕ»½Ó¿Ú¿ÉÄÜͨ¹ýICallͬ²½»ØÓ¦¸øÓ¦Ó㬽«»Ö¸´·¢Ë͸øÓ¦ÓÃÈÎÎñµÄʼþ´¦ÀíÆ÷ÖС£ 4.2.3 ICallµÄ»ù±¾·þÎñ

ÁíÍ⣬ICall°üº¬ÁËÒ»¸ö»ù±¾µÄ·þÎñ¾ÍÊdzéÏó¸÷ÖÖ²Ù×÷ϵͳÏà¹ØµÄº¯Êý¡£ÓÉÓÚÒª¹²Ïí×ÊÔ´ºÍά³ÖÄÚ²¿½ø³ÌµÄͨѶ£¬Ó¦ÓÃÓ¦¸ÃʹÓÃÏÂÃæµÄ»ù±¾·þÎñº¯Êý£º


cc2640À¶ÑÀоƬÈí¼þ¿ª·¢Ö¸µ¼ËµÃ÷Îļþ(6).doc ½«±¾ÎĵÄWordÎĵµÏÂÔØµ½µçÄÔ ÏÂÔØÊ§°Ü»òÕßÎĵµ²»ÍêÕû£¬ÇëÁªÏµ¿Í·þÈËÔ±½â¾ö£¡

ÏÂһƪ£ºÐ¡Ñ§µ³Ô±½Ìʦ¸öÈË×ÔÎÒÆÊÎö²ÄÁÏ

Ïà¹ØÔĶÁ
±¾ÀàÅÅÐÐ
¡Á ×¢²á»áÔ±Ãâ·ÑÏÂÔØ£¨ÏÂÔØºó¿ÉÒÔ×ÔÓɸ´ÖƺÍÅŰ棩

ÂíÉÏ×¢²á»áÔ±

×¢£ºÏÂÔØÎĵµÓпÉÄÜ¡°Ö»ÓÐĿ¼»òÕßÄÚÈݲ»È«¡±µÈÇé¿ö£¬ÇëÏÂÔØÖ®Ç°×¢Òâ±æ±ð£¬Èç¹ûÄúÒѸ¶·ÑÇÒÎÞ·¨ÏÂÔØ»òÄÚÈÝÓÐÎÊÌ⣬ÇëÁªÏµÎÒÃÇЭÖúÄã´¦Àí¡£
΢ÐÅ£º QQ£º