📄 core_cm3.lst
字号:
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 + -