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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。& B* u0 s) ]* g3 y
#include <linux/init.h>/ K1 x$ S4 j0 U8 L( S; Z5 ]6 D
#include <linux/module.h>8 e' ~% q2 C7 n" f. L* V6 ^" E
#include <linux/kernel.h>
  y, G" M, o' L# M& U#include <linux/types.h>
; h9 Y1 G' z3 }  ~* k  G5 J#include <linux/gpio.h>9 Q- r; o  J& o, h
#include <linux/leds.h>
, \; H# y$ E- E4 y  v#include <linux/platform_device.h>
+ B0 n1 O' S' j; L8 F
9 h1 {# a  G4 F#include <asm/mach-types.h>
3 C6 r4 E! m1 ?' R; y#include <asm/mach/arch.h>
/ |- l& ^4 c' t3 i8 x# v3 U; k4 y#include <mach/da8xx.h>& B0 \* T& y7 z
#include <mach/mux.h>
* x" }3 K1 T3 p5 r  W  N: T: T$ P* |# j
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
1 v* f  G. q+ E#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
. ]! l( c5 ?- M* X" i+ C1 e#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
# G9 u- Q2 G  a! d0 W#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
4 [# T6 P( O, ]4 k
+ ]: Y; I( N# H0 ^9 O3 g: h. i/* assign the tl som board LED-GPIOs*/
- I2 P+ B7 W- K, s$ q: lstatic const short da850_evm_tl_user_led_pins[] = {" W1 r: B: {. y3 n2 p& I
        /* These pins are definition at <mach/mux.h> file */
: X. s: A, I8 S6 n2 d& @9 h, z3 ~        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
  r& B4 x) H1 B3 K  \# u% g        -1
  c8 A/ [4 _4 a& r};
9 j4 j- y$ o0 O3 ?# t! ~7 }8 I3 Q& M9 ^* x0 ~9 I
static struct gpio_led da850_evm_tl_leds[] = {2 h8 q2 \4 |, i& v) ]8 \2 k
        {! I" t6 g: d1 {  A% n' b! K
                .active_low = 0,
- E0 Y/ U/ t, M5 y, |0 A! H1 }                .gpio = DA850_USER_LED0,/ H- c6 t5 [9 D$ `+ D$ s  G* D5 m
                .name = "user_led0",
) r. z8 f! }5 Q                .default_trigger = "default-on",
& I$ F% A/ X3 P6 [" B8 |6 v3 A        },
' K9 ?/ |6 B: Y! ?6 s3 ^        {
* }* e8 N# v5 ^8 ^2 O                .active_low = 0,4 i: A" Q* c. R
                .gpio = DA850_USER_LED1,
6 B6 l1 T$ }& Z" E7 d: J                .name = "user_led1",
+ f% h3 a' e1 i. R- F2 L                .default_trigger = "default-on",
: Q) d# [  s. f3 h6 q1 f        },
" p1 j( Q4 @. N# ~3 R        {
( y  D( L7 j% B' K9 \2 u                .active_low = 0,8 Z" V5 }) w' r  n, K: E+ i3 l5 Y
                .gpio = DA850_USER_LED2,; E3 N# L2 u) O- R3 c7 \6 f! _, d
                .name = "user_led2",
8 w: S+ W: f! o5 j+ z' V                .default_trigger = "default-on",
8 W0 n7 c2 G' x% @6 z/ H& x        },
1 w( Q, v( t3 p$ i3 F$ H0 A        {
7 o+ `( z4 z" p" E* \" Y$ s                .active_low = 0,
( x' t2 }$ H- W# k- R                .gpio = DA850_USER_LED3,1 m$ O. ~5 k/ `
                .name = "user_led3"," P9 B! _& _; I% i, L: i. n
                .default_trigger = "default-on",
1 s, s$ F' f: n        },
6 P8 I+ _* V6 M/ f};
3 S/ g* }; y# o% D
0 l) L4 t9 \* q9 T0 T' ystatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {4 I1 x: z- z5 K: n  B
        .leds = da850_evm_tl_leds,- z4 C0 I& s/ ^6 W6 Y
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),4 V2 R' K; ?0 o, c. U3 K2 M2 V' i
};1 n3 ?' }( Q% K; b% c
3 ]8 |4 c- u! S" x& W+ Y8 T0 d
static void led_dev_release(struct device *dev)( Z8 d$ k( \. J) [1 Z
{6 U. d* J8 L6 H$ P
};
% ?5 ^4 e) F9 I3 ~8 y! g( h
; w$ b. {8 K8 `$ ~" b' gstatic struct platform_device da850_evm_tl_leds_device = {
8 F  N+ D3 i2 A4 e: z$ A* P- Z6 C        .name                = "leds-gpio",2 X' s# r1 N. R
        .id                = 1,6 z( o6 f$ Z9 o# x% a( G
        .dev = {
8 J1 H' v1 t2 y8 K( J                .platform_data = &da850_evm_tl_leds_pdata,
5 |6 D7 ]+ J; x0 V' ^  z7 G: l                .release = led_dev_release,' N% D2 _: R* Y# [
        }
) X: j$ k& r$ t; x+ a( C- m5 e};+ A2 d  ~4 S8 ]3 u- M( f
  }" k2 P- t" z( l! g& x+ }  S1 }0 z
static int __init led_platform_init(void)
" r9 j, V+ I( G. O{
6 Z/ G/ I- _* V: _% _        int ret;/ T9 g5 |' W! G% \" a. |: u
#if 0
8 p- b1 L  e# R/ u  x        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
- Y# b: O# x4 z6 \, n- S        if (ret)/ S( s; B  f, \& z
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"/ I- f# X' I5 q, F' F
                                "%d\n", ret);
' o" N1 M7 }4 v! ~#endif
" X2 |: `4 n' Y4 W7 O& F- b        ret = platform_device_register(&da850_evm_tl_leds_device);
5 [; \. X3 B3 e        if (ret)
1 S: ^2 U. g3 k6 ^# q( S9 w                pr_warning("Could not register som GPIO expander LEDS");
% Z9 W) u" I+ s( A        else
* W* _$ V' o$ f3 X* C+ Q! g+ I                printk(KERN_INFO "LED register sucessful!\n");
; M  Y( G) m0 C- T) X" w5 r3 b- j0 I: m! g( |5 A
        return ret;# G" b5 N/ @; v; G4 q! o
}
/ `) d6 P* k& v/ V/ k; C5 M( n7 t& T
8 ^2 ]) ^) h5 h& }/ W: f0 Rstatic void __exit led_platform_exit(void): M! F* K" z  j# x
{
! H  }, p3 B' R# u4 L        platform_device_unregister(&da850_evm_tl_leds_device);- n; a$ }- p6 F* @/ s9 c1 u
0 Z3 T! Q/ R# j9 P4 k3 Q" L
        printk(KERN_INFO "LED unregister!\n");% t6 q% c7 j$ B8 I4 ~# Z: g9 |
}+ u* ~( `0 g0 E0 h1 Z( O
/ x5 B' M9 k) t6 `2 I
module_init(led_platform_init);. v1 \. x! m. |: p4 o; y
module_exit(led_platform_exit);- t# |% b# b& x" F' A& h: Y1 n- C
" J& z/ p4 k$ Q
MODULE_DESCRIPTION("Led platform driver");
: o5 j  w; W( P! h3 ~8 h& o/ J- ^/ IMODULE_AUTHOR("Tronlong");# T2 I* B$ e/ y/ g4 h
MODULE_LICENSE("GPL");% o4 p8 J: z  e) B' J' B! Y4 k* U
' P' N0 t* j  |+ C: B1 a, ^: E0 X) C
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-6 22:36 , Processed in 0.040540 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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