程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8320|回复: 0
打印 上一主题 下一主题

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
! S) F6 v0 c  I% j) a9 W  f#include <linux/init.h>* Z9 e. |" ]9 g
#include <linux/module.h>1 V' [4 i/ v! {2 D& r! v5 B
#include <linux/kernel.h>3 p: b+ b! V, P# j: c
#include <linux/types.h>2 h& [# c: \5 m8 j# i, T% `
#include <linux/gpio.h>7 h% {5 F' z7 b3 k2 z) S
#include <linux/leds.h>  R8 W3 a, _7 P# L" V2 q& j9 i
#include <linux/platform_device.h>
1 @2 N" M& F& E1 q* G3 j( U9 ^3 A+ T0 m( j/ s  h' R2 _1 Q3 y
#include <asm/mach-types.h>
5 u8 d1 g$ \4 ?8 J' r, [7 D#include <asm/mach/arch.h>
, f5 Z) H0 g4 Q, ?1 J: m#include <mach/da8xx.h>+ P) q& \5 k1 d& o6 B
#include <mach/mux.h>$ V* ], `. b6 i
3 d7 H: A+ {4 H$ j  f  |
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)$ @1 R" x" K: v2 D- P% b+ J
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
! v- a  `3 }) z. A& o7 Z7 x#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
, o2 o6 J7 h; X# A: i#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)" H; S3 n5 d$ i/ o" ]
* L$ }4 u0 V6 e
/* assign the tl som board LED-GPIOs*/
' ^' W5 B8 [5 u9 u/ C  P" estatic const short da850_evm_tl_user_led_pins[] = {. w7 N) y: D( G) q' D* V" I
        /* These pins are definition at <mach/mux.h> file */( b2 E; h- B  j: v1 |
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
8 @! o  |5 g. R& c6 P( x        -1
' G* n1 L4 B$ l1 X$ X" p};
3 b. r1 z/ S  |  B+ @
+ G4 e& Z. i. Y6 ustatic struct gpio_led da850_evm_tl_leds[] = {
* Z3 \: I% r  v2 {1 s7 @3 r' A3 ~        {: S- i7 n/ v0 {+ G2 Y: I/ w
                .active_low = 0,
7 v( x6 t! n' B1 z/ ]: S                .gpio = DA850_USER_LED0,
2 d: K8 a3 r+ l" X5 _                .name = "user_led0",- ^0 }8 F* ^0 f3 @+ O
                .default_trigger = "default-on",8 j3 D7 X( M7 X9 o: X8 Q" Y2 l
        },6 z3 l/ M: H$ w3 U5 s4 n
        {, w( f+ r$ U5 Z9 ?: p' k  d! X
                .active_low = 0,
+ B$ v, {/ \, E; H8 K+ {/ E/ n5 M                .gpio = DA850_USER_LED1,
# Q' z, D2 u. d$ b. Y                .name = "user_led1",) R9 e, J3 ^" W
                .default_trigger = "default-on"," F9 O: c. y' m6 B0 h# H
        },+ m- y/ ?  c& D$ R
        {
% C- y! x7 x7 b. [+ E& a                .active_low = 0,
3 J$ [" K# l. q+ R* L1 e" G                .gpio = DA850_USER_LED2,! N6 v& r4 _5 x$ r8 H" \
                .name = "user_led2",
! L$ V$ M9 ~8 x; B% A, }                .default_trigger = "default-on"," f2 j; @6 x; L1 G8 E# Z  J
        },
$ S7 R' F3 j" |" L! @4 i' E        {: ~( `  j6 O( D- I. Z; e3 c
                .active_low = 0,
- d; f9 B( _) \8 X7 ?' _0 _1 M                .gpio = DA850_USER_LED3,. p* h$ k/ ?8 C- ~% K% j7 Q
                .name = "user_led3",, J& M8 y; M% z& B1 [
                .default_trigger = "default-on",1 t; U; i' `' F* a9 x9 N" q
        },$ ?( K( H& Y# _# d- u" h  v
};! x" |$ {$ w$ s
1 I( G8 V& q/ b4 a/ ^
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {2 F; B8 p: Z7 B
        .leds = da850_evm_tl_leds,
! ]( ^0 n) {6 E  ]' o        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
9 B! h( f( D9 T. A2 J};
' c2 H6 e; ~- P, K( k$ j5 ?3 z- @; U  v% K( s
static void led_dev_release(struct device *dev)9 c% V2 h/ A9 }9 K* ?6 t( B/ j
{" F# ?$ S8 e0 f/ {
};" M" K+ I, }) M# M
( T7 A( h8 l% q. K
static struct platform_device da850_evm_tl_leds_device = {
& M% g! x4 ^! I: o! A        .name                = "leds-gpio",
1 {4 K3 r% ~' K: Y) L9 g- U        .id                = 1,
3 I) b: s" t! E, c, V% y! d/ W0 q5 A        .dev = {  D/ l0 b; O/ ?% a% N5 X$ K+ L
                .platform_data = &da850_evm_tl_leds_pdata,2 I% f7 n- O* ]' U
                .release = led_dev_release,9 H5 v$ r- I. S% J
        }
; j) U/ G6 F( F( i};" d0 ]# T* w# M

& K: T! ?  W2 o) i, rstatic int __init led_platform_init(void)* g" g- d; G3 w$ `$ V+ m
{
( T+ I0 |) M! L% c5 A5 f        int ret;
  c# R' i* m. T# k7 e5 ~#if 0
4 V0 c1 G- A2 i; u, I/ z/ C        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
+ B& b  k3 c5 D; `        if (ret)
- @9 u+ t( u* v. v2 v* M                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
4 t2 ]2 l8 j, n% C0 m                                "%d\n", ret);  _/ e! F4 P+ n8 Z* W
#endif% O: `% Q8 C7 \6 C" [2 o0 q
        ret = platform_device_register(&da850_evm_tl_leds_device);# ?7 b2 l4 U9 a7 i1 }  U
        if (ret)
( ^) j% H7 J. p, i4 {9 `. q+ ]                pr_warning("Could not register som GPIO expander LEDS");
/ G! O2 |1 O2 R! J1 d        else
+ s/ L# Y5 m4 Y" K7 H* _                printk(KERN_INFO "LED register sucessful!\n");7 j6 k, m5 n4 e9 r8 k/ d

& E1 c, k# i2 {+ ~! F        return ret;
% T1 m. k" D& y}  L$ H7 K/ Z. F( G6 |  Z9 l2 s
% q% K; W, e7 _. L& K! d
static void __exit led_platform_exit(void)9 P& V6 h, P; g2 X7 w1 J1 b# G
{
: ^! @) W) }( P$ Q  }2 `        platform_device_unregister(&da850_evm_tl_leds_device);8 Q( M  v) V! R0 F# N6 q

$ {/ l( I; p7 K# u: F7 n        printk(KERN_INFO "LED unregister!\n");
2 A% a7 q, C# }( F% _6 E3 n}: N* G% o9 s( n5 ]7 A! x# s/ Z) {! B

2 n4 n- i) P! c& dmodule_init(led_platform_init);
4 N- b" C/ e* N, U( f: w5 fmodule_exit(led_platform_exit);. p2 ~7 E1 z, h, v) s

7 s/ n" A5 M1 p8 z4 Z7 q* H0 lMODULE_DESCRIPTION("Led platform driver");
/ y) j0 P0 b3 U6 m" B$ a8 DMODULE_AUTHOR("Tronlong");
/ T  h4 d5 A$ b: qMODULE_LICENSE("GPL");7 z: a2 G; u! I( A- r
$ s6 k8 b* u- q2 l% |4 n( j
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

点击跳转“创龙科技服务通”

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2026-1-22 19:01 , Processed in 0.037222 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表