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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
* q/ I& C( J+ L4 d( O#include <linux/init.h>  Z* O. \$ T6 u1 t
#include <linux/module.h>  F) x& [) ]9 k# D/ k
#include <linux/kernel.h>4 s2 K2 l0 `6 N
#include <linux/types.h>
  h, Y( Q) W/ L+ y0 m#include <linux/gpio.h>
9 i" R5 p9 F( G9 R4 }/ W#include <linux/leds.h>4 g8 K, l! @; m+ v. N" u6 `
#include <linux/platform_device.h>& S! ^# J& u) m' x  m3 }7 S! Z3 L
, }! z8 ]3 M) V
#include <asm/mach-types.h>' y4 P( ?8 l/ B" x0 L- O9 \
#include <asm/mach/arch.h>
* p/ [% |- ~9 D" m/ p! W2 w  M#include <mach/da8xx.h>3 w" z% \' O, R. |
#include <mach/mux.h>. ^$ O7 c  g1 N
! o+ w9 ^1 a- H$ h+ ?! v8 I
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
1 ]* h6 A. Q. E) \" Z* _5 u#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
1 R/ a0 i4 V+ s, K7 n+ N. M#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
& B( H+ H- r9 i* z7 V) z#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
' `" `6 K& k; r0 T; i* I: W7 O6 q' B& |7 I
/* assign the tl som board LED-GPIOs*/
5 ~: X! c0 Z3 k+ Fstatic const short da850_evm_tl_user_led_pins[] = {
/ U5 @0 }+ v$ E$ y) y+ r& N        /* These pins are definition at <mach/mux.h> file */
4 h- \  ^5 {# ]! H5 k' r4 ^        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,- s! T1 f( I8 c* ]& Y! M! h
        -1
2 x5 ]6 M  ?: L7 S* r$ k# L};" P# d6 [0 r( l, ^2 c
3 Q5 I/ a/ d3 s; p0 U% |
static struct gpio_led da850_evm_tl_leds[] = {
# c; M, Q  C6 Y# z        {
* s9 f( m# }4 |9 B                .active_low = 0,. o3 O" x  N: H* u. P6 N& F' W8 j
                .gpio = DA850_USER_LED0,5 h6 ]6 y& Z5 i# q6 C% {
                .name = "user_led0",
, s) Q. H3 v5 \2 J/ S5 p, ?& J                .default_trigger = "default-on",5 R+ [. F5 y$ P2 y: ^
        },. W4 n+ k& f  W# C& E% U: \: }9 Y
        {
' K; }( u8 [, Z# e4 b1 B7 b                .active_low = 0,6 e% s0 E! q1 W# C' ~9 f/ Y; u
                .gpio = DA850_USER_LED1,
2 Z+ c3 X9 a. T( h' p4 Y8 Q2 o( R' h                .name = "user_led1",
" q9 i* D# i8 d' q                .default_trigger = "default-on",
/ N1 W$ G8 p7 M; p        },
8 `" W& ~$ P/ p& h3 t# y        {5 {/ l1 Q' `# ?
                .active_low = 0,- b( o+ @+ ?5 c% Z5 K0 ^3 ]1 ?! Z/ n
                .gpio = DA850_USER_LED2,4 S" F. m' F. @$ Y
                .name = "user_led2",7 |8 {& r! F7 J$ o/ U
                .default_trigger = "default-on",
  T& ?+ u6 [* s% V5 m" Q        },4 l5 s9 @4 j, A" ]/ ~% S
        {4 F. R- T# G" {, Z, j/ @
                .active_low = 0,
* I2 s; ~/ l- `9 d! T  a                .gpio = DA850_USER_LED3,, ?2 p! j) h9 i( E. Q
                .name = "user_led3",
( ]3 c2 g6 c  F2 r4 g0 u/ X                .default_trigger = "default-on",% B3 m4 i- K( S- |
        },
: B- v5 w% _$ \6 A$ |* P0 ^0 I+ |2 J9 I};
  {( @$ G* r$ d1 w$ U% v2 D3 _6 \( u" |7 d8 ?* C9 Z
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {- \8 R8 n6 Y+ C% Q
        .leds = da850_evm_tl_leds,
9 t: M0 V/ L! U& W( \) [        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
! G% T/ t% M2 J) I5 ~+ B/ K};8 O- ?$ A* ], S& Z# V

! P5 @+ N# N' H0 S! @- I" x" |static void led_dev_release(struct device *dev)
& d* J; s; K+ m/ ?{( A# ^$ S) D4 L5 s$ n' p0 r; H
};& t( ^  \) ~1 R" g8 X) K; X

6 Y+ @) b" {: y0 B" Hstatic struct platform_device da850_evm_tl_leds_device = {! V- ]3 C: H9 ~5 e* |+ s
        .name                = "leds-gpio",) O7 Y8 b6 T; h# d+ L( s
        .id                = 1," T3 C) I, o# z& A5 v
        .dev = {
, y3 P$ |3 G  P0 [' T9 y1 E                .platform_data = &da850_evm_tl_leds_pdata,# ^4 N9 ]# y( Q2 a
                .release = led_dev_release,* ~# A# h, `6 @
        }3 @2 b. z2 ~( K. i0 Z0 R# I0 \- n
};1 W) L. Z) _3 B$ `0 e- e' E

' G/ I" a9 J& [2 q0 ?0 \3 m5 k  Zstatic int __init led_platform_init(void)
( e: |; a0 I4 q+ ^% `  ~{& N9 Z- w7 e- n% N$ E2 U! H3 D
        int ret;$ R* l2 u' m4 [& v/ h# p* `
#if 0: D: y+ S% U% x+ ?
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);, D" ~# D5 ]; g& L8 ^4 |7 o, U% f. Z
        if (ret)
* ]  w8 p$ C1 ~3 T                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"# l6 V- ~2 ?; p! d" A2 V/ }
                                "%d\n", ret);
; Y1 P) d" p, ~# _#endif$ S: Q& ~8 r: C
        ret = platform_device_register(&da850_evm_tl_leds_device);
/ u2 i( j; q1 @+ f; Z        if (ret)
  r7 _: M  |- n& c( ?                pr_warning("Could not register som GPIO expander LEDS");# K2 s# e& C& V- N
        else
9 J% e1 P2 L8 u8 o% y( ?                printk(KERN_INFO "LED register sucessful!\n");
& X/ `( u4 \; Y" x; R7 i
8 t2 @% j) r5 d: V3 A  p8 ^! W        return ret;
; j  J8 F; m+ r  Y7 A0 }/ B}
8 q0 e1 C5 M3 F2 \) {! d) S, w2 H* N2 k
static void __exit led_platform_exit(void)
8 I! _0 p! M5 u/ [- Z9 i' f# [* X6 ^{
' j3 c" W& m* n' e        platform_device_unregister(&da850_evm_tl_leds_device);
0 k$ \1 {7 k" o. c. Y3 @% o0 |: ~4 |6 h5 H+ K
        printk(KERN_INFO "LED unregister!\n");
$ _. w/ v1 x4 T$ B5 E' _}9 H" P1 p9 G' U$ K0 H2 e! x  G% v, V
2 Z9 t5 b3 J; o
module_init(led_platform_init);* D) r, u/ X* D; w4 F+ D
module_exit(led_platform_exit);! T: L8 ^# V4 a/ U
5 {3 I% S  \  @) C; b  G
MODULE_DESCRIPTION("Led platform driver");
9 x* E: f* _! a' cMODULE_AUTHOR("Tronlong");9 q; L1 d! n1 B0 C' R! q# K# q
MODULE_LICENSE("GPL");
' a: o1 ^( M' R" v, _0 u) f' }6 N# E2 ?* E$ ^0 U/ M7 c4 j3 \* S  k
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-8 03:04 , Processed in 0.038150 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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