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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
6 H$ E. q% |* I8 P' ?#include <linux/init.h>
; Z; u7 }+ v+ H( K3 g#include <linux/module.h># n0 v! k  w" I% O
#include <linux/kernel.h>( r3 r  p: D7 d1 e! j& G3 W
#include <linux/types.h>: P+ t2 ^5 [- {: R8 t0 u
#include <linux/gpio.h>
* s5 U/ p, j- g#include <linux/leds.h>- h" l$ k' U/ S7 E
#include <linux/platform_device.h>$ p; m' X! x' v1 p8 Y) n
  T2 ^( l. U. e- P: I
#include <asm/mach-types.h>$ Q" }% h, {/ B( w, G
#include <asm/mach/arch.h>( N! A7 e9 a& K/ @0 i- A
#include <mach/da8xx.h>4 `* @  l* |# e. ~; o+ j3 w! ^
#include <mach/mux.h>! D5 ^( o  M0 k. b) c5 u; H1 C5 G
9 S  Z" a/ P/ U0 ?2 k! R1 R
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
2 w. q1 w, ^. U2 y6 j% H#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
9 y5 l7 w- Y# H#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)# J2 {) j5 h. R+ X
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
" v# n! }1 x; Y) k0 c( x/ q2 |( M$ `- I$ }8 J8 D% e# {
/* assign the tl som board LED-GPIOs*/. r$ Q% [' M2 X# c
static const short da850_evm_tl_user_led_pins[] = {
- i5 O. z7 O: G$ g5 j; |        /* These pins are definition at <mach/mux.h> file */7 T/ ]! B4 P% M! n+ ^8 X' W& m
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,1 v+ t/ {. t# _; B& _
        -1
7 b/ V! x( u: O& [2 E7 W- H) @# H};$ c( V8 X8 Q" R$ G% y
4 T  n+ K1 \( S4 x2 }; ^6 z
static struct gpio_led da850_evm_tl_leds[] = {% O, D! ~6 Y4 ]9 P. ]* b' f- M  I
        {, ]# W& Y+ E+ I6 E0 F8 H( F3 P
                .active_low = 0,
5 B: h0 u3 g: F. C6 L4 X4 k* O                .gpio = DA850_USER_LED0,
/ a! S7 N3 z7 v" {* d% K: e+ ^+ q                .name = "user_led0",
8 O1 ]+ n2 h5 B$ g                .default_trigger = "default-on",, q3 k6 L5 d0 x& }* k3 _8 J
        },- S5 k$ N1 C; @% a" \) G
        {- _$ b, A5 S8 i
                .active_low = 0,
8 V4 n* }4 t' q                .gpio = DA850_USER_LED1,6 `4 p  \; j- S5 |# G! a& u! `8 `
                .name = "user_led1",, c+ D3 ], e( _2 T
                .default_trigger = "default-on",
5 A. T+ e0 o: E5 [& _6 t        },
' J4 t' E+ V+ }) o; a) \$ ?        {
# Y, Q- j; x6 Q8 u                .active_low = 0,& B9 E6 Z/ U+ J3 {! A5 K3 C
                .gpio = DA850_USER_LED2,$ i, O! ^7 ?! s( `3 R
                .name = "user_led2",
& X8 e' s$ Z+ @                .default_trigger = "default-on",, S; g3 a& Z5 A- y8 T3 c. m
        },, r! h1 Y8 {, d; P1 o
        {3 }# }8 V8 Z- K8 f+ r
                .active_low = 0,0 Z$ K" D" P% j, m- b# ], ^3 K# q/ S
                .gpio = DA850_USER_LED3,4 v  M  O/ Y2 N$ K/ B5 G
                .name = "user_led3",
( {: }  ?; d! y- F! j                .default_trigger = "default-on",4 e- M/ [# \5 h! ^. _5 N! z% J
        },3 j" B9 Q) x: R8 K" q. f% _
};
( Y& T  {4 M1 e( b4 j( \) Q1 c' i
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {6 j' W# L: w1 {& A6 b
        .leds = da850_evm_tl_leds,
( G/ T  n, B' \+ x+ p2 t' J        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
2 R6 ?+ N3 ~8 @! z0 s# \};
# e0 N$ K. U; z- K/ R" r- a1 J; L, G
4 I- C1 U$ r( r0 j/ estatic void led_dev_release(struct device *dev)
1 C. ]+ c5 K& V{
6 e9 S" u% y) ^( b};
' |+ Z8 |& m/ ^& ]7 o0 u
3 h' U8 S* r4 d. v& I( ustatic struct platform_device da850_evm_tl_leds_device = {6 k+ y; ?+ s$ q% t
        .name                = "leds-gpio",
4 h; b9 M0 J( T1 @/ S        .id                = 1,
1 }6 p, y" |) i8 T4 y        .dev = {/ K  {$ b8 i& ?0 T/ {) k/ @1 h
                .platform_data = &da850_evm_tl_leds_pdata,3 C/ i8 Y7 Q% y( ~) R% T
                .release = led_dev_release,; ^7 P! Z2 V4 @
        }
, _' F5 P, n" |% L# P- a};
) ^, G# @/ U1 s! R9 f( N) n
0 p* F: Q5 F5 @5 Estatic int __init led_platform_init(void)7 b; V% u% g: X, ~/ j
{4 `" `0 H7 U8 \0 J5 g
        int ret;( C1 ]1 s: |* T( z* h  b' M) U% t  }
#if 0) H5 ~4 H2 `% E3 O$ m: {
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
# M# n* t! G+ }. b- v# J! t# @! {2 O        if (ret)4 _% y* T3 o3 H9 m4 y9 ^; i
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
  B3 q4 H9 {, S& |1 D! B% c                                "%d\n", ret);
- n$ |! C/ p' Q+ I" ^* {#endif
, F, ?4 T8 _5 v. t- e" `5 g8 R        ret = platform_device_register(&da850_evm_tl_leds_device);
* g8 J3 L- M, l0 M) W+ }( Q$ u; X        if (ret): w8 J9 {# i! b" H3 W
                pr_warning("Could not register som GPIO expander LEDS");! Q0 P' O6 t7 u7 y' r4 G) x
        else
8 W& w) Y6 T8 Y0 v' X. }/ {                printk(KERN_INFO "LED register sucessful!\n");
) _9 v! z) ?& |/ h: G8 c) a& r: Z2 L4 W5 q6 i
        return ret;
+ m+ B- y; E2 b) ]. G( S}
, M4 e3 E/ ]6 }$ X* R
/ J, J, ]2 A4 b" h; U1 Vstatic void __exit led_platform_exit(void)
1 h$ c5 n7 Y* V, L{
8 s+ ~& K' E. r) \        platform_device_unregister(&da850_evm_tl_leds_device);
1 A$ x0 c: i& W# S9 T3 X: O# @/ u2 a" ^- B) p* w9 q" j! w) @
        printk(KERN_INFO "LED unregister!\n");4 F' E' H9 n, u, e4 s" Q
}
" z) R, y2 R" m" Z; A
3 n5 {, i$ o  p7 u, E5 b0 ?module_init(led_platform_init);4 k! @  N* H5 h2 W) g
module_exit(led_platform_exit);
- f5 u7 r  [( O; s9 k4 u/ z& a; n9 o' I; p5 D& p# u
MODULE_DESCRIPTION("Led platform driver");% m& o8 @/ _2 u; g+ W; t
MODULE_AUTHOR("Tronlong");
+ f9 w/ ^  V8 K' WMODULE_LICENSE("GPL");+ M( q0 L: \0 s

, N9 X$ @$ a4 L  n
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-19 09:27 , Processed in 0.039598 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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