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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
3 @9 l. l0 U, C3 c3 G/ S#include <linux/init.h>
- M  W% o0 f/ E- ~+ M0 Z/ S#include <linux/module.h>* S, d) I7 z. B
#include <linux/kernel.h>( j8 B5 a& S+ M7 V0 h& P
#include <linux/types.h>8 ~7 S5 ?7 Y9 z- D
#include <linux/gpio.h>0 Z- _, K) K1 I' q* l# W$ {' U
#include <linux/leds.h>% \: q+ a& f2 y) e5 m  N! W
#include <linux/platform_device.h>
( {9 w& m5 Z+ Z
: V3 D  }& y( a#include <asm/mach-types.h>) g& B  v2 U# A, x, ?) F" s; l
#include <asm/mach/arch.h>" r# x: i  F4 P, u
#include <mach/da8xx.h>! V5 P$ Z  T( ^/ R4 R- a/ [
#include <mach/mux.h>
# N4 |7 i: Z& W/ X. P% v
: G# i/ |8 m4 X0 k+ `#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
+ |- V$ S9 V- z7 Y#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
" m2 A3 [7 B; o" \, `4 M3 K#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)9 i9 [. v  k4 F* _6 ]
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
! g' N! v; V3 q
: _. u; N2 d, ?! T& O9 c3 N/* assign the tl som board LED-GPIOs*/3 p$ x1 V! k* x) [7 n
static const short da850_evm_tl_user_led_pins[] = {: ]% H9 U9 X: R" n- O& |# @6 D' O5 a
        /* These pins are definition at <mach/mux.h> file */
, m  r4 u. R' N" ], w& \$ Q        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
- G# \$ o* _2 M6 U4 q% f) Q2 }        -18 b$ y6 k/ ~3 l1 l  I
};7 N9 K5 g/ S1 {" l5 m3 x7 G
) B+ X7 ?5 w/ P$ l7 V
static struct gpio_led da850_evm_tl_leds[] = {1 ^9 U( P/ n% N2 F! C8 D8 U+ k
        {+ o7 r) ^! F# j/ i$ l- z1 u
                .active_low = 0,/ |4 n+ M, D6 ]% u+ G. p3 i1 ^! Q
                .gpio = DA850_USER_LED0,8 t' Z6 ]7 X& X- C: E
                .name = "user_led0",
2 b2 U& p4 W1 n                .default_trigger = "default-on",8 {! ~4 Z0 M. W0 \. u  s: ?
        },
6 }( S- q0 f. X9 u' Z- A        {
3 A8 W3 z9 F3 ~. ?  f; i. h" c                .active_low = 0,
  _) ^% _( S2 j9 e/ D( }$ O2 N0 ~                .gpio = DA850_USER_LED1,
( e7 c0 r, u! Y                .name = "user_led1",+ [9 [: b- f' C( e+ c# P
                .default_trigger = "default-on",1 J2 u8 k$ t7 t% a4 V
        },
0 v2 W, P5 S" V' C: L        {
4 f! v8 m  M# r) `# r                .active_low = 0,
" f! R. M+ u- g+ A  w9 M2 ^                .gpio = DA850_USER_LED2,) d7 m+ [$ G: h. j4 N
                .name = "user_led2",0 P5 }! E; h7 W& A
                .default_trigger = "default-on",
6 r* M5 b1 B" q        },
2 ]' C6 O6 G0 A* n        {
' }  [8 i! N/ k* i7 k                .active_low = 0,
) U2 X. k6 W3 y                .gpio = DA850_USER_LED3,
0 {" H4 \, X! x/ ?" M/ ^                .name = "user_led3",& H% K1 J3 E$ I! E! x
                .default_trigger = "default-on",- M7 w" M3 @+ d
        },
% t0 n5 {; T/ }+ l9 r};- |* c  D, r; d; C0 V3 X+ R
3 f6 D( u4 z: N( T
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {7 n) C' `) P3 L; G
        .leds = da850_evm_tl_leds,
' ?) |" [' L7 q/ S( B& i. X        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
$ w9 m" N6 }2 Z& T};
/ C! D; d, a. D( G, z( N: H$ ?& h' \1 T# B' F, M9 q. v
static void led_dev_release(struct device *dev)
* F& m. c+ ^' a7 |0 o3 ?6 F0 z* |/ |{. z; B/ u# d" m
};
" ]" x( w9 Q, U6 v1 M. o2 L3 o* V4 j% U
static struct platform_device da850_evm_tl_leds_device = {5 A4 ~  e7 U5 f5 w* i) G+ _
        .name                = "leds-gpio",
1 m$ [) @! S& i/ G6 U# ]" S        .id                = 1,
: @1 s$ P2 I2 G+ i        .dev = {" O1 Y& y* b- ?5 [$ C6 g4 l( N. L
                .platform_data = &da850_evm_tl_leds_pdata,- t' U/ K8 L8 j6 a3 l2 k
                .release = led_dev_release,9 l! E3 X& C3 I( m& i
        }9 X+ D5 G, K$ Q, n7 E" c
};6 b" o( t% ]; g) e7 d
' N7 `7 q2 ]# F
static int __init led_platform_init(void)
# E& h  W$ A& d% T" g6 ]" d{1 U6 q5 x# A8 L+ r
        int ret;/ p: Q& D) g' S
#if 0
: v, V5 {9 y8 x' R! s        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);  Q- o( `) E- v# c+ e; Y2 b7 a- S
        if (ret)
2 D* ~! c7 f, Q: n0 B3 z# Y5 q8 }                pr_warning("da850_evm_tl_leds_init : User LED mux failed :", C4 |+ D& p& |& H9 n
                                "%d\n", ret);1 v/ @/ x4 O# H
#endif
0 t. Y: q& L: q# `0 x7 _        ret = platform_device_register(&da850_evm_tl_leds_device);
7 }# N  [- K3 ^* U        if (ret)- }3 p+ h/ U. O/ ?' ?, l, Q
                pr_warning("Could not register som GPIO expander LEDS");6 j* Z7 u8 D0 |* x, L
        else* m* I" p0 [/ g& }( l/ z
                printk(KERN_INFO "LED register sucessful!\n");# z2 Q8 R' w' F- E/ h9 W* p6 n
1 D$ Z4 o: [$ ^/ c  B7 h% [" \( s
        return ret;3 s( M9 H* i: e9 s9 e: z
}
, ?* i* r- i/ J) |4 m' c/ z
7 d/ C/ ^; S7 m( y, D; S1 kstatic void __exit led_platform_exit(void)
: r, a( b( j* J; {" U6 p6 ^{
: I' L; j6 v6 g- I0 S, t        platform_device_unregister(&da850_evm_tl_leds_device);
* V  i% Q8 s4 @) _: ?4 ?, R) Z0 N! Q7 A# Y
        printk(KERN_INFO "LED unregister!\n");9 a) o) e$ O/ f, h9 v2 Q" X
}
# Y7 B6 v& {* ~9 L7 T1 K1 b8 a8 O# d9 H5 d/ j) B- W+ U
module_init(led_platform_init);
" x$ S% v  m( a6 n0 {module_exit(led_platform_exit);, ~' e. c9 c* }; D
+ A" w; E( _( c  q: R- ~% K
MODULE_DESCRIPTION("Led platform driver");
6 @+ L; i" u3 r/ jMODULE_AUTHOR("Tronlong");
7 F# z" M/ A7 F" w; uMODULE_LICENSE("GPL");
7 t# q2 n8 \7 D! F% V1 c: n1 G4 e; L8 R1 H6 f( y- C  h) [
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-3 07:29 , Processed in 0.039415 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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