程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
' ?, P# t% r  o#include <linux/init.h>! R# L/ M1 j" ]3 R: }
#include <linux/module.h>8 a% M# E" P  ]& _( P7 G
#include <linux/kernel.h>6 n& ^9 L6 v3 E0 H6 `$ \
#include <linux/types.h>7 T) }9 a/ ]& j
#include <linux/gpio.h>
4 T! X8 c) D3 ]: u#include <linux/leds.h>2 h' Q% i* w( K& L! t  h* d6 ^
#include <linux/platform_device.h>
7 E- q! f2 p& B! {' Q& @) G
1 Q0 R" A8 B+ y) Q/ j#include <asm/mach-types.h>
' x& c, C' b: M; W% j% A#include <asm/mach/arch.h>
; K2 I  t$ Z- H5 D! q#include <mach/da8xx.h>
0 }# h; o/ r# i% ?, U9 E5 o#include <mach/mux.h>; j2 |& m8 c! S0 {( n

0 J3 f- d9 e) x' h9 w# S% s#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)  C0 x; b9 L6 I4 Z( v# g
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)0 c4 x0 V: p# F; r7 K+ }% L$ g
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
1 b' u0 O6 U, w2 ]+ C#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)- y6 w- o$ F+ F  E) ~& l

2 [9 V$ ]; `* U- g/* assign the tl som board LED-GPIOs*/; e( R; [! }# p  Z6 @* {4 o& [  g
static const short da850_evm_tl_user_led_pins[] = {2 L, E; Y4 M$ ^
        /* These pins are definition at <mach/mux.h> file */
  {( W. n' R' K, K        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
# X7 U! O% H- x" e+ g* Q        -1" S* ]3 P6 E( }5 P
};' o3 m( y( X. }7 h! n9 \4 L# \' f
" K- x4 b6 K; m& s0 X8 n
static struct gpio_led da850_evm_tl_leds[] = {( t! \! L/ _1 s& Y0 ^
        {
, A2 K0 J9 W" A! c5 L- G' q. K                .active_low = 0,
( G8 U* Q8 l( S7 ?                .gpio = DA850_USER_LED0,  x  U# W4 r+ Y/ Z% r
                .name = "user_led0",
( m* _0 \1 V) }! {: v" m1 w! P$ k- h                .default_trigger = "default-on",
& ~0 V! @  C7 p8 c        },; U# \: d2 i( l
        {& [6 y$ |  @2 A  I# ^9 c8 @# m
                .active_low = 0,
7 E4 U6 K# K; s8 b                .gpio = DA850_USER_LED1,
6 Y8 P9 v% F+ ^2 |" ^5 F& l2 h) J                .name = "user_led1",3 m! i- s  y1 P9 p
                .default_trigger = "default-on",
- ?8 B9 E/ A# _2 n        },
7 H0 f: ^/ W4 Q$ a        {7 S* Y/ I/ f/ n* O' d% W, `
                .active_low = 0,
8 @" w5 k( i! U+ ]  q2 K8 Z/ }                .gpio = DA850_USER_LED2,
0 q/ ?2 g. D8 y$ F                .name = "user_led2",
# W7 T+ d8 C) b                .default_trigger = "default-on",1 Y/ ^  d" c  T5 ^- ]3 T6 L
        },
) g/ @! b. F  _" X        {. s: r3 s4 ]( z5 E
                .active_low = 0,
+ N5 E8 T8 G. K8 F                .gpio = DA850_USER_LED3,
3 h/ x2 M% p# T                .name = "user_led3",
" Y' L; ?" p6 Z                .default_trigger = "default-on",% y' |0 o" K+ m% t5 A$ L
        },
/ r" W/ O  {2 i4 o: o7 c+ Y};
  H! K. e7 a) Y& k6 K/ M, N. p: g+ i  F, W# b
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {" x7 R3 |$ B( V4 G( e
        .leds = da850_evm_tl_leds,/ t3 }+ }+ y, ?
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),  k# L3 y) o! o: F
};
; j9 i' J# l' u2 W# e$ E7 Z$ a9 |# V" m
static void led_dev_release(struct device *dev)
+ x- Y! I0 u9 k& A{
, [% V! `% }+ r/ ^  L, b/ N};* H$ C' ~' F) @4 H) w: G- @
7 U% C! F1 n9 e* ~# l) F; y4 {' _
static struct platform_device da850_evm_tl_leds_device = {
( D& e( C( B& q( u% v1 N        .name                = "leds-gpio",. Q- \( f0 h' G$ R! _4 D
        .id                = 1,1 [  E# A3 d. x* A/ C7 v0 [
        .dev = {
' v  {! F; F& m, \7 I& v+ W                .platform_data = &da850_evm_tl_leds_pdata,3 ^. e# o& {7 S8 ?
                .release = led_dev_release,
0 n) C! t' w0 U/ \. t1 ]9 N; m        }8 w, b- j2 G" v8 n' p; C
};
: \- _3 G: D  ~! k; q1 [5 s* A* l1 q* n5 r: {
static int __init led_platform_init(void)
5 k5 j7 U& X# o7 O! E. Q. w{# Q' M+ F- A2 K0 b6 l- y
        int ret;+ G+ _3 z2 p5 s' y% H) o
#if 0
7 B) c8 j# [+ V) J        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);% F/ V4 `, w# R3 p* Z$ E* ]
        if (ret)( r( [7 U4 r: W% t6 n
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
% \% H  Z" |; V3 u! ]& f                                "%d\n", ret);
: v. g+ K) Z2 t: }#endif
% ~7 o7 j! Y3 `; T1 s5 g# w9 c        ret = platform_device_register(&da850_evm_tl_leds_device);; f- y0 P( K3 }5 B$ S
        if (ret)( F" N, V* U# V8 u
                pr_warning("Could not register som GPIO expander LEDS");1 T, C; R6 }( o* j) c; z: a
        else
( }1 q# h) N* X: I+ P8 }9 R. q                printk(KERN_INFO "LED register sucessful!\n");
$ h6 M' n9 C& F/ u. ?( V3 t. L! w! K+ D! u" w9 |% c( R
        return ret;9 B. b# z6 J9 `1 D( {8 \
}
1 G/ B, ?0 p* o; v) @+ p5 j2 ?$ _+ s" v# H2 O  k; _8 u
static void __exit led_platform_exit(void)2 r' q# l) f8 d4 O( d
{: D- A7 a1 I1 A0 {
        platform_device_unregister(&da850_evm_tl_leds_device);" e6 s7 F! r, Y8 |4 p

" ^1 z9 E* [; |$ T0 K        printk(KERN_INFO "LED unregister!\n");
7 S4 B, K! [) P$ O/ o}% q- i6 o) l$ Q) Y) }7 @
1 X# R7 h: l8 B) G: Z$ N8 j) j  J5 e- t' m
module_init(led_platform_init);0 B8 a! |' [; }0 S  @% f
module_exit(led_platform_exit);
1 k4 Y# J6 g* |2 V8 ?
  b/ `2 K8 Y2 [. {- R' x9 n$ BMODULE_DESCRIPTION("Led platform driver");
; o9 W6 P6 f' x0 eMODULE_AUTHOR("Tronlong");( }, i9 q0 n  {/ N3 t# g8 I
MODULE_LICENSE("GPL");
- H1 u7 b# Y, S, `' H* S; B7 z3 b& G8 n2 x: v
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-23 09:00 , Processed in 0.038582 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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