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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。* d3 S8 {4 g5 H+ `) P8 o! B" S
#include <linux/init.h>
$ K% j6 Y0 V) z0 m5 O#include <linux/module.h>/ a( r8 V# M" ?7 @! o
#include <linux/kernel.h>* E( i5 f* t6 P. `# ~
#include <linux/types.h>! U! I" s0 ~& d! d. |$ s8 Y7 g# @4 H8 ^
#include <linux/gpio.h>
! Z& a! Q4 a1 z  s, R2 F#include <linux/leds.h>
# P4 q$ U, l$ ~0 O+ t( f8 U( `#include <linux/platform_device.h>* o' }7 q/ f7 Z- H
5 q9 [2 ]* \* D/ w' d) i
#include <asm/mach-types.h>
+ Q) l& j/ h+ q" C+ K9 `#include <asm/mach/arch.h>
. Z$ F) P3 z' Z; ~- I#include <mach/da8xx.h>
5 m; \& g: x+ a7 k9 N) Z: I#include <mach/mux.h>
2 U$ R& [6 U9 x/ X+ e; x. t9 S* d3 I& N3 h( Y
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
9 @, K, t, I8 B" m' l/ m$ R) b#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
0 V  g4 @: Y1 f7 C) c#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
  p9 m; d. H5 A: n" W# k! G; E#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)3 y' y+ u: }& H: m% _/ D: z. E; o( p
0 f9 {/ R) A8 O+ v( }
/* assign the tl som board LED-GPIOs*/) Y) B$ W7 f6 |7 O' z) k! ^# {# p6 m
static const short da850_evm_tl_user_led_pins[] = {4 S9 J; [3 j% _1 E! J! Y
        /* These pins are definition at <mach/mux.h> file */
( _3 i  [0 G6 Y: v2 `        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
" h# D( D' f" }9 s! J8 n        -1& g1 j4 L8 M% E. Z& F! B) T1 x
};
* P. U1 i! d3 r; i  c7 b( G; o5 m8 R
static struct gpio_led da850_evm_tl_leds[] = {5 c8 D  I! w7 ]9 v) a4 R) J
        {% N. v' P; u; x8 t; l+ q
                .active_low = 0,
" K4 o9 Q* h/ y' n4 [7 G                .gpio = DA850_USER_LED0,: i" R" g5 g5 m: |1 v5 {
                .name = "user_led0",
/ ?4 |% r9 d. i' K( R                .default_trigger = "default-on",
. f( q6 c  v9 `        },  i( Z0 w- y5 S" P$ r& a" j! P
        {
% G6 e7 f$ y' e2 Z2 D                .active_low = 0,! v0 D3 k# @5 X
                .gpio = DA850_USER_LED1,& L4 Z0 k3 L. {# u
                .name = "user_led1",5 k0 u! Y9 Y3 B* z& E
                .default_trigger = "default-on",0 p1 D9 m' \9 D) G
        },( c, n% f& {  V) F6 k7 s8 }
        {
2 w4 E% j( G8 y) r9 U- L                .active_low = 0,
7 \  S! S% a4 O7 s% s                .gpio = DA850_USER_LED2,
. h0 d/ ^+ _8 a+ c, f+ s! `                .name = "user_led2",8 ?' ]% K# D& M5 |9 d
                .default_trigger = "default-on",# @4 \% S* I. g) M: i' i
        },# y/ K$ T. y3 t- M; L
        {. u6 {) j% d" h& J& i
                .active_low = 0,
2 \) N7 Y6 U4 i+ f                .gpio = DA850_USER_LED3,, M/ G) @: J& O6 i* d7 Q' g
                .name = "user_led3",
6 ~) w6 A3 q1 e. ]& b                .default_trigger = "default-on",
8 M3 d$ J$ Y) T( T        },6 g. u# ?) K/ N3 B. W
};
; l  j2 k6 B: W: C; \$ S5 ]5 S0 r# {# f. u/ D- A' T) l5 [
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
7 E9 O* p6 Z4 U# Y4 r0 A! U$ }7 |        .leds = da850_evm_tl_leds,7 K4 h! t* D/ ]& G
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),& T# j. L; n4 A3 H5 u
};
0 n2 F, X) R+ l- Z9 I# B9 W" ~: t- v8 ?% T4 E
static void led_dev_release(struct device *dev)3 a# n5 G2 [# ~2 g/ }$ K3 F( S. p
{/ y  c* I8 c4 I( Z1 B/ `. a/ y
};
0 @3 k4 D! g2 |* ]
. O4 b1 v" |/ s& vstatic struct platform_device da850_evm_tl_leds_device = {- c7 Q  y0 M( ?
        .name                = "leds-gpio",2 E8 c0 V: h* J; e' i
        .id                = 1,- x* c4 _" N- j' ~
        .dev = {# E5 i6 ~+ g- d- o
                .platform_data = &da850_evm_tl_leds_pdata,
" d/ t+ b+ B! p8 v# R( \) M- L0 _                .release = led_dev_release," i, d9 b$ L3 r5 |
        }4 Q/ K' r( W. h4 P' N) K; C
};+ Z3 p/ m. l* j3 Q+ k/ }6 t7 P/ @

( v7 C( X0 W$ v/ A7 H0 @static int __init led_platform_init(void)! _; x5 r- C& O3 L8 W* t8 o
{
4 \# d" ~4 x' D6 d! d  h& ]        int ret;
) E4 e& _0 |, T+ L% a  E#if 0
& S4 s% a0 [1 D5 n) a3 g        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
8 a. n$ A  P6 X. U        if (ret)
+ t6 n1 u6 R" p) O; N, M' B                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"( W4 y- d! Z$ ?& Y  j
                                "%d\n", ret);
0 O/ n, i+ O+ s$ r4 H/ D1 u#endif
7 N* X$ ?1 D( E$ K5 {" L        ret = platform_device_register(&da850_evm_tl_leds_device);
, |( r3 o2 d# H6 k( ]/ C  I+ \5 w        if (ret)
1 V! z% G' [0 s8 i  X3 C                pr_warning("Could not register som GPIO expander LEDS");
$ T7 t+ M& x4 D        else
. Y- b$ p. G! Z$ w" Z; S                printk(KERN_INFO "LED register sucessful!\n");) i9 S& p6 b1 p& V9 w( l3 _
, u& i  w5 v) r* L1 H$ K
        return ret;
7 Q; T& m; ~: t# H* v  M}5 {2 z# g. a1 \# T8 E9 X. l2 E
& Y3 j- u0 g2 J) z1 W  O- K9 t) M
static void __exit led_platform_exit(void)
0 s$ `# U3 c7 g& T! M, a6 a. ^( j{
' Z, u4 s/ Q& t5 I. q        platform_device_unregister(&da850_evm_tl_leds_device);
8 k0 t3 ^8 p& K
+ d4 x  W2 \5 Y/ z# X& {3 M) l        printk(KERN_INFO "LED unregister!\n");
  e  P; k( Z4 Y; t. O, n( S}
$ L% `; M3 a: e* I/ q3 ?; |) s4 A
. o; F2 E( g( b% P$ V3 Z& P4 ^module_init(led_platform_init);# O, i+ \7 t3 [) _  u
module_exit(led_platform_exit);) Z) b: w% V8 y' N
$ N2 t( I8 _8 b. c) B
MODULE_DESCRIPTION("Led platform driver");
% z; H: o) _) E% J$ _) rMODULE_AUTHOR("Tronlong");4 K( \2 U& k$ ^8 M- ]
MODULE_LICENSE("GPL");
& B" j( C$ e, H- Y, d7 [! l9 e5 _+ o$ `5 d
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-28 14:46 , Processed in 0.041044 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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