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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
3 q- O! m  \7 i  {* P) y#include <linux/init.h>% t0 }, v( [1 U# [9 ], W
#include <linux/module.h>
" t5 [; N( y) n3 a( J9 L#include <linux/kernel.h>
7 D9 T0 s% R8 A' \#include <linux/types.h>
" d; S6 B8 c3 e6 N- B" b8 V#include <linux/gpio.h>$ n% C# f; [" t; _1 h
#include <linux/leds.h>
6 F  ?: X+ u# Y3 r, C#include <linux/platform_device.h>4 s1 L$ k9 X* J3 ~5 e
5 H0 A9 c8 H( h: l) y
#include <asm/mach-types.h>( K: R4 V$ M% o9 m& c
#include <asm/mach/arch.h>
# R* V% [, m* o; f# U#include <mach/da8xx.h>
/ a  K+ Q0 m5 G1 Y2 ^6 }0 K#include <mach/mux.h>
7 D) c* g( g4 R7 v( a. @& L! ?9 b' H0 M1 E; b
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)1 Y# T0 `' y* E, k
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
4 Y9 b7 i$ v' w5 _! l#define DA850_USER_LED2        GPIO_TO_PIN(0, 1), K/ }8 [: z8 z& I
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
3 F: f6 ?2 h% k7 x6 g2 D. {5 L* c: [3 U
/* assign the tl som board LED-GPIOs*/
+ D, S3 @- D$ s8 ?6 Lstatic const short da850_evm_tl_user_led_pins[] = {4 h; {+ h' o0 K/ t
        /* These pins are definition at <mach/mux.h> file */- \/ [3 J9 ~/ s8 F! x, \: L
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
# w& [0 z" ^9 g5 m+ F. S! V8 w6 {1 G        -10 S2 w' ]7 h0 n! F! T1 ], o8 e+ \7 q
};
& d/ t* o% ?2 a8 n0 L3 b9 X+ b- d. K0 U- b) u6 l1 T6 R0 i+ z
static struct gpio_led da850_evm_tl_leds[] = {
2 X' n. B3 p. P( K; v! L8 W; |        {
7 o" x5 G- m, h* y" J3 v8 ~, a* n                .active_low = 0,1 k( T6 e2 V4 V0 x
                .gpio = DA850_USER_LED0,
3 |7 \0 e) R! Q( J                .name = "user_led0",
& G$ d" U: P& D7 G) B3 m- j                .default_trigger = "default-on",
* ~$ ~2 Q% E' _7 j) m$ y, a        },1 i8 W5 z* S5 z( U% w6 ^5 p5 T
        {
' s7 c, b8 M" V. E                .active_low = 0,3 \0 W$ N! _3 A4 [5 [8 h
                .gpio = DA850_USER_LED1,
3 I/ j- b/ b) w" }6 [9 P                .name = "user_led1",
% P% z: V  b" j. R& @                .default_trigger = "default-on",7 }. ~7 q" R! @$ X, l; I7 h! |
        },
: ?7 v4 z4 }- B  Z- z3 O- G; s6 J        {
% A, }8 I, `  e: V' G                .active_low = 0,
' J. q& T8 `' m6 |' \                .gpio = DA850_USER_LED2,8 j" |' h: d2 ^& P5 m4 G
                .name = "user_led2",
$ a7 q' _5 u2 y& a; w                .default_trigger = "default-on",: D" O0 V; w$ E- S$ m+ F
        },
* V. z. }, P) T) p- c- I' u# @# T; a        {
3 w% }% m8 C" ^5 e                .active_low = 0,% S+ o* O* m! O* ]: O6 E' }* c/ |
                .gpio = DA850_USER_LED3,
& t$ Z/ G$ |/ Q1 T# p3 G  O                .name = "user_led3",
7 d4 h1 Z2 ~% W4 ]3 J: |: v/ \                .default_trigger = "default-on",
! [" V* i4 Y4 {  F: l        },
' X9 v" ?  f5 q+ B6 E$ \0 A/ Q4 e};
1 i1 p) `# U7 ]
( f$ G( [( v/ [6 R( qstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
, ^. y! |- ?3 r% K% C  c) g2 |6 G: M        .leds = da850_evm_tl_leds,  n0 H8 A6 r2 I9 c! M
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),4 V* U( F4 s& p0 b
};# Z. z9 Q& x1 ]" y2 D! v7 ]
% D7 a) ~) u. v9 R* {) a
static void led_dev_release(struct device *dev)
% n* T% x# c. G& l1 H5 U{
, n: E- L, e' D& \6 J( V* z};9 H  `/ {: r( o) g

! t- T" {, A) k5 S. S0 Qstatic struct platform_device da850_evm_tl_leds_device = {& `: d- B# E7 w
        .name                = "leds-gpio",, s; U; q# U: J
        .id                = 1,+ A; x& R" Z, Y0 ?4 D# e+ X
        .dev = {
' r9 R6 \& n  [9 s6 J                .platform_data = &da850_evm_tl_leds_pdata,
  C, b' \8 b, w$ b3 P( D                .release = led_dev_release,4 z1 s% d2 H, K
        }& k5 {/ {( `$ y2 e" J
};, d6 w1 R: Q$ V: J: O# I
  C4 q2 P" H' Q7 x5 ]
static int __init led_platform_init(void)6 T- l) \$ F# R
{
" T% D  h+ Q- O1 p* u        int ret;" F6 m# x: {0 u$ _5 @
#if 0
% Y2 l) |8 c0 H  C9 h- a* d+ k        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);$ D& h+ }7 W6 n( }5 r! `
        if (ret)  V6 `9 D. d" ^
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
$ Y, m) y8 Q" O2 s( [                                "%d\n", ret);
; \+ i+ d: _8 N+ y# g#endif
/ _4 Q* Z: X. X' j+ ]6 }6 v! @9 b/ d        ret = platform_device_register(&da850_evm_tl_leds_device);
8 k$ G+ x& t5 ?        if (ret)
$ P  I7 I4 C3 o/ k                pr_warning("Could not register som GPIO expander LEDS");3 h( y' \, }' M+ i
        else
4 m. a) T9 t$ ~+ K- j: y                printk(KERN_INFO "LED register sucessful!\n");7 x, K6 o" r- J3 B* Z
. j) R2 r2 Z( R+ q8 V4 `3 x
        return ret;5 i. k0 z" _' b5 l" M
}
$ g5 ^& T. w9 J6 _' N/ w
9 {. v4 o* ?0 h. L4 Y1 F! Vstatic void __exit led_platform_exit(void)4 H( |6 |. k: d: a* ^) W. |% k' c
{
8 b. B& `0 s5 S$ C, g2 t        platform_device_unregister(&da850_evm_tl_leds_device);- c% ]4 r1 a+ b9 G$ M; i

; Z2 W# g  x: n9 n5 o& E        printk(KERN_INFO "LED unregister!\n");$ h% U) B6 F# a  B; A- q; Y
}
' {# ^$ ^- t9 b$ w. @! d: y9 r( y+ h) ^* n
module_init(led_platform_init);
6 ^% I$ H( N( j9 \0 U/ lmodule_exit(led_platform_exit);
# w( e/ D% \9 t7 J. \; `( d  a
MODULE_DESCRIPTION("Led platform driver");
- H% K% W7 c4 ^- E. ?MODULE_AUTHOR("Tronlong");
* z, ^9 s5 i; o; eMODULE_LICENSE("GPL");
- M, z3 c( i0 c1 D& o& b5 D' o  ?8 ^4 Y/ W$ U# `8 j( ^; _& C9 E% n
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-18 17:33 , Processed in 0.043272 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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