ÉèΪÊ×Ò³ ¼ÓÈëÊÕ²Ø

TOP

TX2440 ÂãÅÜʵÑé-»ã±àCÓïÑÔ»ì±à(ADS1.2±àÒë) ½ø½×(¶þ)
2014-11-24 07:35:00 À´Ô´: ×÷Õß: ¡¾´ó ÖРС¡¿ ä¯ÀÀ:1´Î
Tags£ºTX2440 ʵÑé »ã±à ÓïÑÔ ADS1.2 ±àÒë ½ø½×

Ò».ʵÑéÄ¿µÄ:

Àí½â»ã±àµÄ±à³Ì½á¹¹,ÓÐÖúÓÚѧϰARM»ã±àÓëCÓïÑԵĵ÷ÓùØÏµ,ÊìϤ¶ÑÕ»µÄµ÷ÓùØÏµ.

¶þ.ʵÑé»·¾³:

TX2440ƽ̨

Èý.ʵÑ鹤¾ß:

ADS1.2 + AXD + JLINKµ÷ÊÔ

ËÄ.ʵÑé²½Öè:

1.ÔÚads ÉϽ¨Á¢Ð¹¤³Ì,Ôö¼ÓÁ½¸öÔ´Îļþcall_C_func.s ºÍ func.c

1)call_C_func.sÔ´Âë

;ÎÒµÄassembler³ÌÐò,EastonWoo procedure

area init,code,readonly
import add_8
import main
export assembler_add_4
export assembler_add_5
export assembler_add_8

entry ;Ò»¸ö½ø³ÌÖÐÖÁÉÙÓÐÒ»¸ö.

start
ldr sp,=0x33ff8000 ;³ÌÐòÓÐЧ¿ªÊ¼Ö¸ÁîµØÖ·:0x30000000,,¶ÑÕ»ÉèÔÚÄÚ´æÀïÃæ,Ò²¾ÍÊÇ´óÓÚ0x30000000,×¢Òâ²»Òª¸ú´úÂëÇø³åÍ»;
;Èç¹ûÉè³É0x1000,ÊÇд²»½øÕ»µÄ,¶Á³öÀ´ÊÇ0xFFFFFFFF.


;********************Ò»:»ã±àÖе÷ÓÃCÓïÑÔº¯Êý:***************************
stmfd sp!,{r0-r3};start¿´×÷×Ó³ÌÐò,±£»¤ºÃr0-r3 ѹջ

;5¸öʵ²Î:ÓÅÏÈʹÓÃip,¼´r0-r3,ÆäÖÐip.ip×÷ΪµÚ5¸öʵ²Î
;6¸öʵ²Î:ÓÅÏÈʹÓÃip,lr,¼´r0-r3,ip,lr.ÆäÖÐip,lr·Ö±ð×÷ΪµÚ5,6¸öʵ²Î.
;ÆäÖÐlr»áÔÚ×Ó³ÌÐòѹջ,³öÕ».
;7¸öʵ²Î:ÓÅÏÈʹÓÃip,lr,ºÍÒ»¸ö±£´æ¾Ö²¿±äÁ¿µÄ¼Ä´æÆ÷v1,¼´r0-r3,ip,lr,v1.ÆäÖÐip,lr,v1·Ö±ð×÷ΪµÚ5,6,7¸öʵ²Î.
;ÆäÖÐlr,v1»áÔÚ×Ó³ÌÐòѹջ,³öÕ»
;8¸öʵ²Î:ÓÅÏÈʹÓÃip,lr,ºÍ¶þ¸ö±£´æ¾Ö²¿±äÁ¿µÄ¼Ä´æÆ÷v1,v2,¼´r0-r3,ip,lr,v1,v2.ÆäÖÐip,lr,v1,v2·Ö±ð×÷ΪµÚ5,6,7,8¸öʵ²Î.
;ÆäÖÐlr,v1,v2»áÔÚ×Ó³ÌÐòѹջ,³öÕ»
;Èç´ËÀàÍÆ...
;15¸ö²ÎÊý¿ªÊ¼¾Í¸ü¸´ÔÓÁË.ÒòΪËùÓеľֲ¿±äÁ¿¼Ä´æÆ÷È«ÓÃÁË.4+2+8=14.ÒÔºóÓÐʱ¼äÔÙÀ´Ñо¿.

;8¸ö²ÎÊýÀý×Ó,µ÷ÓÃCº¯ÊýÀý×Ó.
mov v2,#8
mov v1,#7
mov lr,#6
mov ip,#5
stmfd sp!,{v1-v2} ;ѹջ,ÏÈѹ8,7,Ò²¾ÍÊÍ·ÅÁËv1,v2¼Ä´æÆ÷.add_8Àï»áÓõ½ÕâЩ¼Ä´æÆ÷.
stmfd sp!,{ip,lr} ;ѹջ,ÔÙѹ6,5,Ò²¾ÍÊÍ·ÅÁËip,lr¼Ä´æÆ÷.add_8Àï»áÓõ½ÕâЩ¼Ä´æÆ÷.
mov r3,#4
mov r2,#3
mov r1,#2
mov r0,#1
bl add_8 ;·µ»ØÖµÎªr0
add sp,sp,#16 ;³öÕ».


;********************¶þ:CÓïÑÔÖе÷Óûã±àº¯Êý:***************************
mov v2,#8 ;8¸öʵ²Î½øÕ».ÕâÀï¾Í²»Öظ´ÐðÊöÁË.
mov v1,#7
mov lr,#6
stmfd sp!,{v1-v2} ;ѹջ,ÏÈѹ8,7,Ò²¾ÍÊÍ·ÅÁËv1,v2¼Ä´æÆ÷.add_8Àï»áÓõ½ÕâЩ¼Ä´æÆ÷.
stmfd sp!,{ip,lr} ;ѹջ,ÔÙѹ6,5,Ò²¾ÍÊÍ·ÅÁËip,lr¼Ä´æÆ÷.add_8Àï»áÓõ½ÕâЩ¼Ä´æÆ÷.
mov r3,#4
mov r2,#3
mov r1,#2
mov r0,#1
bl main ;blÒѾ­±£´æÁËb over Õâ¸öµØÖ·µ½lr.
add sp,sp,#16 ;³öÕ».


ldmfd sp!,{r0-r3}
b over


assembler_add_4 ;×Ó³ÌÐòÖ±½ÓʹÓÃr0-r3ÕâËĸöʵ²Î.
add r0,r0,r1
add r0,r0,r2
add r0,r0,r3
mov pc,lr

assembler_add_5 ;×Ó³ÌÐòÖ±½ÓʹÓÃr0-r3ÕâËĸöʵ²ÎºÍipÕâ¸öµÚ5¸öʵ²Î.
add r0,r0,r1
add r0,r0,r2
add r0,r0,r3
add r0,r0,ip
mov pc,lr

;Õâ¸ö8λµÄ»ã±àº¯ÊýÏ൱ÓÚ֮ǰÎÒÃÇÌÖÂÛµÄ8¸ö²ÎÊýµÄ±»µ÷ÓÃCº¯ÊýµÄ·´»ã±à´úÂë.
assembler_add_8 ;ǰ4¸öʵ²Î,×Ó³ÌÐòÖ±½ÓʹÓÃr0-r3ÕâËĸöʵ²Î;ºó4¸öʵ²Î·Ö±ðÓÉip,lr,v1-v2¶¼ÊÇÔÚÕ»ÀïµÃÀ´.
stmfd sp!,{v1-v2,lr}
add ip,r13,#0x14
ldmia ip,{v1-v2}
ldr ip,[r13,#0xc]
ldr lr,[r13,#0x10]
add r0,r0,r1
add r0,r0,r2
add r0,r0,r3
add r0,r0,ip
add r0,r0,lr
add r0,r0,v1
add r0,r0,v2
ldmfd sp!,{v1-v2,pc}

over
nop ;ÎÞÓù¦.ΪÁ˱àÒëÆ÷²»±¨¾¯
end


¡¾´ó ÖРС¡¿¡¾´òÓ¡¡¿ ¡¾·±Ìå¡¿¡¾Í¶¸å¡¿¡¾Êղء¿ ¡¾ÍƼö¡¿¡¾¾Ù±¨¡¿¡¾ÆÀÂÛ¡¿ ¡¾¹Ø±Õ¡¿ ¡¾·µ»Ø¶¥²¿¡¿
·ÖÏíµ½: 
ÉÏһƪ£ºTX2440 ÂãÅÜʵÑé-LEDµÆÉÁ˸(ADS1... ÏÂһƪ£ºQtÖÐʹÓÃOpenCVÏÔʾͼƬʱ£¬Mat½á..

ÆÀÂÛ

ÕÊ¡¡¡¡ºÅ: ÃÜÂë: (ÐÂÓû§×¢²á)
Ñé Ö¤ Âë:
±í¡¡¡¡Çé:
ÄÚ¡¡¡¡ÈÝ:

¡¤Linuxϵͳ¼ò½é (2025-12-25 21:55:25)
¡¤Linux°²×°MySQL¹ý³Ì (2025-12-25 21:55:22)
¡¤Linuxϵͳ°²×°½Ì³Ì£¨ (2025-12-25 21:55:20)
¡¤HTTP Åc HTTPS µÄ²î„ (2025-12-25 21:19:45)
¡¤ÍøÕ¾°²È«±ØÐ޿ΣºÍ¼ (2025-12-25 21:19:42)