⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 core_cm3.lst

📁 STM32 "kickstart" program with newlib/stdio like sprintf&printf
💻 LST
📖 第 1 页 / 共 5 页
字号:
 231:lib/CMSIS/Core/CM3/core_cm3.c ****   bx lr
 232:lib/CMSIS/Core/CM3/core_cm3.c **** }
 233:lib/CMSIS/Core/CM3/core_cm3.c **** 
 234:lib/CMSIS/Core/CM3/core_cm3.c **** /**
 235:lib/CMSIS/Core/CM3/core_cm3.c ****  * @brief  Return the Control Register value
 236:lib/CMSIS/Core/CM3/core_cm3.c ****  * 
 237:lib/CMSIS/Core/CM3/core_cm3.c ****  * @param  none
 238:lib/CMSIS/Core/CM3/core_cm3.c ****  * @return uint32_t Control value
 239:lib/CMSIS/Core/CM3/core_cm3.c ****  *
 240:lib/CMSIS/Core/CM3/core_cm3.c ****  * Return the content of the control register
 241:lib/CMSIS/Core/CM3/core_cm3.c ****  */
 242:lib/CMSIS/Core/CM3/core_cm3.c **** __ASM uint32_t  __get_CONTROL(void)
 243:lib/CMSIS/Core/CM3/core_cm3.c **** {
 244:lib/CMSIS/Core/CM3/core_cm3.c ****   mrs r0, control
 245:lib/CMSIS/Core/CM3/core_cm3.c ****   bx lr
 246:lib/CMSIS/Core/CM3/core_cm3.c **** }
 247:lib/CMSIS/Core/CM3/core_cm3.c **** 
 248:lib/CMSIS/Core/CM3/core_cm3.c **** /**
 249:lib/CMSIS/Core/CM3/core_cm3.c ****  * @brief  Set the Control Register value
 250:lib/CMSIS/Core/CM3/core_cm3.c ****  *
 251:lib/CMSIS/Core/CM3/core_cm3.c ****  * @param  uint32_t Control value
 252:lib/CMSIS/Core/CM3/core_cm3.c ****  * @return none
 253:lib/CMSIS/Core/CM3/core_cm3.c ****  *
 254:lib/CMSIS/Core/CM3/core_cm3.c ****  * Set the control register
 255:lib/CMSIS/Core/CM3/core_cm3.c ****  */
 256:lib/CMSIS/Core/CM3/core_cm3.c **** __ASM void __set_CONTROL(uint32_t control)
 257:lib/CMSIS/Core/CM3/core_cm3.c **** {
 258:lib/CMSIS/Core/CM3/core_cm3.c ****   msr control, r0
 259:lib/CMSIS/Core/CM3/core_cm3.c ****   bx lr
 260:lib/CMSIS/Core/CM3/core_cm3.c **** }
 261:lib/CMSIS/Core/CM3/core_cm3.c **** 
 262:lib/CMSIS/Core/CM3/core_cm3.c **** #endif /* __ARMCC_VERSION  */ 
 263:lib/CMSIS/Core/CM3/core_cm3.c **** 
 264:lib/CMSIS/Core/CM3/core_cm3.c **** 
 265:lib/CMSIS/Core/CM3/core_cm3.c **** #elif (defined (__ICCARM__)) /*------------------ ICC Compiler -------------------*/
 266:lib/CMSIS/Core/CM3/core_cm3.c **** #pragma diag_suppress=Pe940
 267:lib/CMSIS/Core/CM3/core_cm3.c **** 
 268:lib/CMSIS/Core/CM3/core_cm3.c **** /**
 269:lib/CMSIS/Core/CM3/core_cm3.c ****  * @brief  Return the Process Stack Pointer
 270:lib/CMSIS/Core/CM3/core_cm3.c ****  *
 271:lib/CMSIS/Core/CM3/core_cm3.c ****  * @param  none
 272:lib/CMSIS/Core/CM3/core_cm3.c ****  * @return uint32_t ProcessStackPointer
 273:lib/CMSIS/Core/CM3/core_cm3.c ****  *
 274:lib/CMSIS/Core/CM3/core_cm3.c ****  * Return the actual process stack pointer
 275:lib/CMSIS/Core/CM3/core_cm3.c ****  */
 276:lib/CMSIS/Core/CM3/core_cm3.c **** uint32_t __get_PSP(void)
 277:lib/CMSIS/Core/CM3/core_cm3.c **** {
 278:lib/CMSIS/Core/CM3/core_cm3.c ****   __ASM("mrs r0, psp");
 279:lib/CMSIS/Core/CM3/core_cm3.c ****   __ASM("bx lr");
 280:lib/CMSIS/Core/CM3/core_cm3.c **** }
 281:lib/CMSIS/Core/CM3/core_cm3.c **** 
 282:lib/CMSIS/Core/CM3/core_cm3.c **** /**
 283:lib/CMSIS/Core/CM3/core_cm3.c ****  * @brief  Set the Process Stack Pointer
 284:lib/CMSIS/Core/CM3/core_cm3.c ****  *
 285:lib/CMSIS/Core/CM3/core_cm3.c ****  * @param  uint32_t Process Stack Pointer
 286:lib/CMSIS/Core/CM3/core_cm3.c ****  * @return none
 287:lib/CMSIS/Core/CM3/core_cm3.c ****  *
 288:lib/CMSIS/Core/CM3/core_cm3.c ****  * Assign the value ProcessStackPointer to the MSP 
 289:lib/CMSIS/Core/CM3/core_cm3.c ****  * (process stack pointer) Cortex processor register
 290:lib/CMSIS/Core/CM3/core_cm3.c ****  */
 291:lib/CMSIS/Core/CM3/core_cm3.c **** void __set_PSP(uint32_t topOfProcStack)
 292:lib/CMSIS/Core/CM3/core_cm3.c **** {
 293:lib/CMSIS/Core/CM3/core_cm3.c ****   __ASM("msr psp, r0");
 294:lib/CMSIS/Core/CM3/core_cm3.c ****   __ASM("bx lr");
 295:lib/CMSIS/Core/CM3/core_cm3.c **** }
 296:lib/CMSIS/Core/CM3/core_cm3.c **** 
 297:lib/CMSIS/Core/CM3/core_cm3.c **** /**
 298:lib/CMSIS/Core/CM3/core_cm3.c ****  * @brief  Return the Main Stack Pointer
 299:lib/CMSIS/Core/CM3/core_cm3.c ****  *
 300:lib/CMSIS/Core/CM3/core_cm3.c ****  * @param  none
 301:lib/CMSIS/Core/CM3/core_cm3.c ****  * @return uint32_t Main Stack Pointer
 302:lib/CMSIS/Core/CM3/core_cm3.c ****  *
 303:lib/CMSIS/Core/CM3/core_cm3.c ****  * Return the current value of the MSP (main stack pointer)
 304:lib/CMSIS/Core/CM3/core_cm3.c ****  * Cortex processor register
 305:lib/CMSIS/Core/CM3/core_cm3.c ****  */
 306:lib/CMSIS/Core/CM3/core_cm3.c **** uint32_t __get_MSP(void)
 307:lib/CMSIS/Core/CM3/core_cm3.c **** {
 308:lib/CMSIS/Core/CM3/core_cm3.c ****   __ASM("mrs r0, msp");
 309:lib/CMSIS/Core/CM3/core_cm3.c ****   __ASM("bx lr");
 310:lib/CMSIS/Core/CM3/core_cm3.c **** }
 311:lib/CMSIS/Core/CM3/core_cm3.c **** 
 312:lib/CMSIS/Core/CM3/core_cm3.c **** /**
 313:lib/CMSIS/Core/CM3/core_cm3.c ****  * @brief  Set the Main Stack Pointer
 314:lib/CMSIS/Core/CM3/core_cm3.c ****  *
 315:lib/CMSIS/Core/CM3/core_cm3.c ****  * @param  uint32_t Main Stack Pointer
 316:lib/CMSIS/Core/CM3/core_cm3.c ****  * @return none
 317:lib/CMSIS/Core/CM3/core_cm3.c ****  *
 318:lib/CMSIS/Core/CM3/core_cm3.c ****  * Assign the value mainStackPointer to the MSP 
 319:lib/CMSIS/Core/CM3/core_cm3.c ****  * (main stack pointer) Cortex processor register
 320:lib/CMSIS/Core/CM3/core_cm3.c ****  */
 321:lib/CMSIS/Core/CM3/core_cm3.c **** void __set_MSP(uint32_t topOfMainStack)
 322:lib/CMSIS/Core/CM3/core_cm3.c **** {
 323:lib/CMSIS/Core/CM3/core_cm3.c ****   __ASM("msr msp, r0");
 324:lib/CMSIS/Core/CM3/core_cm3.c ****   __ASM("bx lr");
 325:lib/CMSIS/Core/CM3/core_cm3.c **** }
 326:lib/CMSIS/Core/CM3/core_cm3.c **** 
 327:lib/CMSIS/Core/CM3/core_cm3.c **** /**
 328:lib/CMSIS/Core/CM3/core_cm3.c ****  * @brief  Reverse byte order in unsigned short value
 329:lib/CMSIS/Core/CM3/core_cm3.c ****  *
 330:lib/CMSIS/Core/CM3/core_cm3.c ****  * @param  uint16_t value to reverse
 331:lib/CMSIS/Core/CM3/core_cm3.c ****  * @return uint32_t reversed value
 332:lib/CMSIS/Core/CM3/core_cm3.c ****  *
 333:lib/CMSIS/Core/CM3/core_cm3.c ****  * Reverse byte order in unsigned short value
 334:lib/CMSIS/Core/CM3/core_cm3.c ****  */
 335:lib/CMSIS/Core/CM3/core_cm3.c **** uint32_t __REV16(uint16_t value)
 336:lib/CMSIS/Core/CM3/core_cm3.c **** {
 337:lib/CMSIS/Core/CM3/core_cm3.c ****   __ASM("rev16 r0, r0");
 338:lib/CMSIS/Core/CM3/core_cm3.c ****   __ASM("bx lr");
 339:lib/CMSIS/Core/CM3/core_cm3.c **** }
 340:lib/CMSIS/Core/CM3/core_cm3.c **** 
 341:lib/CMSIS/Core/CM3/core_cm3.c **** /**
 342:lib/CMSIS/Core/CM3/core_cm3.c ****  * @brief  Reverse bit order of value
 343:lib/CMSIS/Core/CM3/core_cm3.c ****  *
 344:lib/CMSIS/Core/CM3/core_cm3.c ****  * @param  uint32_t value to reverse
 345:lib/CMSIS/Core/CM3/core_cm3.c ****  * @return uint32_t reversed value
 346:lib/CMSIS/Core/CM3/core_cm3.c ****  *
 347:lib/CMSIS/Core/CM3/core_cm3.c ****  * Reverse bit order of value
 348:lib/CMSIS/Core/CM3/core_cm3.c ****  */
 349:lib/CMSIS/Core/CM3/core_cm3.c **** uint32_t __RBIT(uint32_t value)
 350:lib/CMSIS/Core/CM3/core_cm3.c **** {
 351:lib/CMSIS/Core/CM3/core_cm3.c ****   __ASM("rbit r0, r0");
 352:lib/CMSIS/Core/CM3/core_cm3.c ****   __ASM("bx lr");
 353:lib/CMSIS/Core/CM3/core_cm3.c **** }
 354:lib/CMSIS/Core/CM3/core_cm3.c **** 
 355:lib/CMSIS/Core/CM3/core_cm3.c **** /**
 356:lib/CMSIS/Core/CM3/core_cm3.c ****  * @brief  LDR Exclusive
 357:lib/CMSIS/Core/CM3/core_cm3.c ****  *
 358:lib/CMSIS/Core/CM3/core_cm3.c ****  * @param  uint8_t* address
 359:lib/CMSIS/Core/CM3/core_cm3.c ****  * @return uint8_t value of (*address)
 360:lib/CMSIS/Core/CM3/core_cm3.c ****  *
 361:lib/CMSIS/Core/CM3/core_cm3.c ****  * Exclusive LDR command
 362:lib/CMSIS/Core/CM3/core_cm3.c ****  */
 363:lib/CMSIS/Core/CM3/core_cm3.c **** uint8_t __LDREXB(uint8_t *addr)
 364:lib/CMSIS/Core/CM3/core_cm3.c **** {
 365:lib/CMSIS/Core/CM3/core_cm3.c ****   __ASM("ldrexb r0, [r0]");
 366:lib/CMSIS/Core/CM3/core_cm3.c ****   __ASM("bx lr"); 
 367:lib/CMSIS/Core/CM3/core_cm3.c **** }
 368:lib/CMSIS/Core/CM3/core_cm3.c **** 
 369:lib/CMSIS/Core/CM3/core_cm3.c **** /**
 370:lib/CMSIS/Core/CM3/core_cm3.c ****  * @brief  LDR Exclusive
 371:lib/CMSIS/Core/CM3/core_cm3.c ****  *
 372:lib/CMSIS/Core/CM3/core_cm3.c ****  * @param  uint16_t* address
 373:lib/CMSIS/Core/CM3/core_cm3.c ****  * @return uint16_t value of (*address)
 374:lib/CMSIS/Core/CM3/core_cm3.c ****  *
 375:lib/CMSIS/Core/CM3/core_cm3.c ****  * Exclusive LDR command
 376:lib/CMSIS/Core/CM3/core_cm3.c ****  */
 377:lib/CMSIS/Core/CM3/core_cm3.c **** uint16_t __LDREXH(uint16_t *addr)
 378:lib/CMSIS/Core/CM3/core_cm3.c **** {
 379:lib/CMSIS/Core/CM3/core_cm3.c ****   __ASM("ldrexh r0, [r0]");
 380:lib/CMSIS/Core/CM3/core_cm3.c ****   __ASM("bx lr");
 381:lib/CMSIS/Core/CM3/core_cm3.c **** }
 382:lib/CMSIS/Core/CM3/core_cm3.c **** 
 383:lib/CMSIS/Core/CM3/core_cm3.c **** /**
 384:lib/CMSIS/Core/CM3/core_cm3.c ****  * @brief  LDR Exclusive
 385:lib/CMSIS/Core/CM3/core_cm3.c ****  *
 386:lib/CMSIS/Core/CM3/core_cm3.c ****  * @param  uint32_t* address
 387:lib/CMSIS/Core/CM3/core_cm3.c ****  * @return uint32_t value of (*address)
 388:lib/CMSIS/Core/CM3/core_cm3.c ****  *
 389:lib/CMSIS/Core/CM3/core_cm3.c ****  * Exclusive LDR command
 390:lib/CMSIS/Core/CM3/core_cm3.c ****  */
 391:lib/CMSIS/Core/CM3/core_cm3.c **** uint32_t __LDREXW(uint32_t *addr)
 392:lib/CMSIS/Core/CM3/core_cm3.c **** {
 393:lib/CMSIS/Core/CM3/core_cm3.c ****   __ASM("ldrex r0, [r0]");
 394:lib/CMSIS/Core/CM3/core_cm3.c ****   __ASM("bx lr");
 395:lib/CMSIS/Core/CM3/core_cm3.c **** }
 396:lib/CMSIS/Core/CM3/core_cm3.c **** 
 397:lib/CMSIS/Core/CM3/core_cm3.c **** /**
 398:lib/CMSIS/Core/CM3/core_cm3.c ****  * @brief  STR Exclusive
 399:lib/CMSIS/Core/CM3/core_cm3.c ****  *
 400:lib/CMSIS/Core/CM3/core_cm3.c ****  * @param  uint8_t *address
 401:lib/CMSIS/Core/CM3/core_cm3.c ****  * @param  uint8_t value to store
 402:lib/CMSIS/Core/CM3/core_cm3.c ****  * @return uint32_t successful / failed
 403:lib/CMSIS/Core/CM3/core_cm3.c ****  *
 404:lib/CMSIS/Core/CM3/core_cm3.c ****  * Exclusive STR command
 405:lib/CMSIS/Core/CM3/core_cm3.c ****  */
 406:lib/CMSIS/Core/CM3/core_cm3.c **** uint32_t __STREXB(uint8_t value, uint8_t *addr)
 407:lib/CMSIS/Core/CM3/core_cm3.c **** {
 408:lib/CMSIS/Core/CM3/core_cm3.c ****   __ASM("strexb r0, r0, [r1]");
 409:lib/CMSIS/Core/CM3/core_cm3.c ****   __ASM("bx lr");
 410:lib/CMSIS/Core/CM3/core_cm3.c **** }
 411:lib/CMSIS/Core/CM3/core_cm3.c **** 
 412:lib/CMSIS/Core/CM3/core_cm3.c **** /**
 413:lib/CMSIS/Core/CM3/core_cm3.c ****  * @brief  STR Exclusive
 414:lib/CMSIS/Core/CM3/core_cm3.c ****  *
 415:lib/CMSIS/Core/CM3/core_cm3.c ****  * @param  uint16_t *address
 416:lib/CMSIS/Core/CM3/core_cm3.c ****  * @param  uint16_t value to store
 417:lib/CMSIS/Core/CM3/core_cm3.c ****  * @return uint32_t successful / failed
 418:lib/CMSIS/Core/CM3/core_cm3.c ****  *
 419:lib/CMSIS/Core/CM3/core_cm3.c ****  * Exclusive STR command
 420:lib/CMSIS/Core/CM3/core_cm3.c ****  */
 421:lib/CMSIS/Core/CM3/core_cm3.c **** uint32_t __STREXH(uint16_t value, uint16_t *addr)
 422:lib/CMSIS/Core/CM3/core_cm3.c **** {
 423:lib/CMSIS/Core/CM3/core_cm3.c ****   __ASM("strexh r0, r0, [r1]");
 424:lib/CMSIS/Core/CM3/core_cm3.c ****   __ASM("bx lr");
 425:lib/CMSIS/Core/CM3/core_cm3.c **** }
 426:lib/CMSIS/Core/CM3/core_cm3.c **** 
 427:lib/CMSIS/Core/CM3/core_cm3.c **** /**
 428:lib/CMSIS/Core/CM3/core_cm3.c ****  * @brief  STR Exclusive
 429:lib/CMSIS/Core/CM3/core_cm3.c ****  *
 430:lib/CMSIS/Core/CM3/core_cm3.c ****  * @param  uint32_t *address
 431:lib/CMSIS/Core/CM3/core_cm3.c ****  * @param  uint32_t value to store
 432:lib/CMSIS/Core/CM3/core_cm3.c ****  * @return uint32_t successful / failed
 433:lib/CMSIS/Core/CM3/core_cm3.c ****  *
 434:lib/CMSIS/Core/CM3/core_cm3.c ****  * Exclusive STR command
 435:lib/CMSIS/Core/CM3/core_cm3.c ****  */
 436:lib/CMSIS/Core/CM3/core_cm3.c **** uint32_t __STREXW(uint32_t value, uint32_t *addr)
 437:lib/CMSIS/Core/CM3/core_cm3.c **** {
 438:lib/CMSIS/Core/CM3/core_cm3.c ****   __ASM("strex r0, r0, [r1]");
 439:lib/CMSIS/Core/CM3/core_cm3.c ****   __ASM("bx lr");
 440:lib/CMSIS/Core/CM3/core_cm3.c **** }
 441:lib/CMSIS/Core/CM3/core_cm3.c **** 
 442:lib/CMSIS/Core/CM3/core_cm3.c **** #pragma diag_default=Pe940
 443:lib/CMSIS/Core/CM3/core_cm3.c **** 
 444:lib/CMSIS/Core/CM3/core_cm3.c **** 
 445:lib/CMSIS/Core/CM3/core_cm3.c **** #elif (defined (__GNUC__)) /*------------------ GNU Compiler ---------------------*/
 446:lib/CMSIS/Core/CM3/core_cm3.c **** 
 447:lib/CMSIS/Core/CM3/core_cm3.c **** /**
 448:lib/CMSIS/Core/CM3/core_cm3.c ****  * @brief  Return the Process Stack Pointer
 449:lib/CMSIS/Core/CM3/core_cm3.c ****  *
 450:lib/CMSIS/Core/CM3/core_cm3.c ****  * @param  none
 451:lib/CMSIS/Core/CM3/core_cm3.c ****  * @return uint32_t ProcessStackPointer
 452:lib/CMSIS/Core/CM3/core_cm3.c ****  *
 453:lib/CMSIS/Core/CM3/core_cm3.c ****  * Return the actual process stack pointer
 454:lib/CMSIS/Core/CM3/core_cm3.c ****  */
 455:lib/CMSIS/Core/CM3/core_cm3.c **** uint32_t __get_PSP(void)
 456:lib/CMSIS/Core/CM3/core_cm3.c **** {
  31              		.loc 1 456 0
  32              		@ args = 0, pretend = 0, frame = 0
  33              		@ frame_needed = 0, uses_anonymous_args = 0
  34              		@ link register save eliminated.
 457:lib/CMSIS/Core/CM3/core_cm3.c ****   uint32_t result=0;
 458:lib/CMSIS/Core/CM3/core_cm3.c **** 
 459:lib/CMSIS/Core/CM3/core_cm3.c ****   __ASM volatile ("MRS %0, psp" : "=r" (result) );
  35              		.loc 1 459 0
  36              	@ 459 "lib/CMSIS/Core/CM3/core_cm3.c" 1
  37 0000 EFF30980 		MRS r0, psp
  38              	@ 0 "" 2
  39              	.LVL0:
  40              	.LVL1:
 460:lib/CMSIS/Core/CM3/core_cm3.c ****   return(result);
 461:lib/CMSIS/Core/CM3/core_cm3.c **** }
  41              		.loc 1 461 0
  42              		.thumb
  43 0004 7047     		bx	lr
  44              	.LFE2:
  46 0006 C046     		.section	.text.__set_PSP,"ax",%progbits
  47              		.align	2
  48              		.global	__set_PSP
  49              		.thumb
  50              		.thumb_func
  52              	__set_PSP:
  53              	.LFB3:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -