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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。* \9 J7 z" R5 |- N2 ]
#include <linux/init.h>
' ]( s8 H1 I0 b3 `#include <linux/module.h>
. Z- I  W4 z" g! ?* I#include <linux/kernel.h>
% k. D9 u2 b+ H- n' A. u#include <linux/types.h>' ?( j& v- d4 r7 Z
#include <linux/gpio.h>
; n# S! W  Q# g8 m( e% }#include <linux/leds.h>) X: U- T9 e  g. r7 b) L
#include <linux/platform_device.h>
) e4 x3 T' E6 Y! d7 R
! h1 O6 \5 V/ e1 g#include <asm/mach-types.h>' t  l2 W2 C/ q/ v' p& T
#include <asm/mach/arch.h>
/ q' i, D4 c$ t& |& a#include <mach/da8xx.h>
6 x* C0 J' N8 R1 W#include <mach/mux.h>6 Q* X& M' G: U
' i. n( g4 e" V) a5 n
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)" R7 z" h9 Y& ?+ @% C7 [( `* p; u
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
! r8 D& N. z  x5 ?#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)! I: M( o% m2 Y) g
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
# V+ C  Y3 g$ ^7 J; X) z
5 m( F8 F) I: B0 u5 K/* assign the tl som board LED-GPIOs*/+ t6 [7 E. o4 k* R+ V
static const short da850_evm_tl_user_led_pins[] = {
$ G& W5 k; l$ p, z3 j        /* These pins are definition at <mach/mux.h> file */
: ?) n5 `% U6 C4 S        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,& Q2 U' S& [! g( k5 w& {9 S
        -1& f, ~3 c' [6 B% G; M
};4 N! A' r& g6 u% Z" w

" v3 x0 [2 \  j# L# D3 ostatic struct gpio_led da850_evm_tl_leds[] = {$ c) l- g" x0 G8 ]( |8 r
        {1 s+ C! [4 c9 O
                .active_low = 0,
( v/ K* U- u+ @4 B                .gpio = DA850_USER_LED0,5 ]+ x5 Z  H; h2 u( o# f
                .name = "user_led0",1 w7 i0 T' j% a- Z% G# }0 o6 D
                .default_trigger = "default-on",
" V* T8 q& m) @2 S0 d; O% X& @        },
# F4 H: w9 A' `- \        {- G, y  @; k% A+ V! U) F
                .active_low = 0,
2 n8 S. k" G0 Z+ h                .gpio = DA850_USER_LED1,
6 @% o- i1 U: e                .name = "user_led1",
* Z& p% q9 a# r6 m" h8 i                .default_trigger = "default-on",
; o8 ~# \& t2 q' P4 T+ {        },! s/ g$ u( T8 Z4 L7 P5 i3 v/ d
        {
: T3 c7 n0 \4 S$ D' u3 p                .active_low = 0,
- V* }5 J( C) ]                .gpio = DA850_USER_LED2,& H; H$ I2 B' p% M, z$ ^8 I/ R7 n
                .name = "user_led2",* ~+ u* O2 `2 V. e; L: @# w. n- P
                .default_trigger = "default-on",4 j/ g: a% D0 ^" f3 i( l
        },
. u6 L8 d  z2 F: F- K* |* g        {
9 B1 k2 Z$ B" p# P- U$ a                .active_low = 0,
6 l3 N- p% o, h1 ?                .gpio = DA850_USER_LED3,6 Q1 y/ c$ M1 W9 {" Q7 o; x& U) {
                .name = "user_led3",0 c; {( \9 e$ N4 z4 e, ~
                .default_trigger = "default-on",
4 G0 I0 _5 [2 G7 N        },; J6 F5 k8 T( o( |& O
};
" P  ]" D& b: Z+ x( b
, l0 O$ F) d" }6 {' Wstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
7 d) s( {/ W6 ]5 L4 `* B3 U9 K# x9 P        .leds = da850_evm_tl_leds,
* e# |$ G" k6 T+ I+ c: G* i        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),$ ^/ J& f/ M$ ~
};5 P$ ?# w0 U4 F

5 W2 q) g0 q( p0 R( l" Kstatic void led_dev_release(struct device *dev)$ Y( K% n; ~0 m$ x% v' S# Y$ R; k( P
{
9 F5 N3 i+ A6 k* V: U" l) t7 I};3 u1 \: C) ?6 A  Z3 V
" M+ T8 t* z3 Z$ {) U
static struct platform_device da850_evm_tl_leds_device = {
6 r% h0 |8 F. B# O9 ^# A: J2 {        .name                = "leds-gpio",; ]9 ^$ G# v2 i! n" ]; j; `. X
        .id                = 1,* K$ H& Z8 U  `2 f9 c3 H
        .dev = {
2 p! w% V' U6 q! g2 J                .platform_data = &da850_evm_tl_leds_pdata,5 U, F/ J; L' G5 c. C
                .release = led_dev_release,0 H& g( k, \* T& ^* k; v# c+ c4 u3 n- x& R
        }& J! {* L+ k# h8 S& h2 U, y
};
. Q5 s: x! t6 \6 |6 ^  |( C) T+ ?2 x9 T
static int __init led_platform_init(void)
% g/ h; P+ V4 ?2 D! L! t{
# F# `3 w/ Z7 @. t5 _! `        int ret;& s+ C: ?, F6 S
#if 0
1 J6 A( ?& Q$ t7 z9 W        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);$ }6 k' P, y* e  V/ q
        if (ret)% m3 N$ I: a8 z" k( z" C$ Z
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"3 s; h7 R. r0 {  o% c
                                "%d\n", ret);2 y5 Z( \) d) |- }+ d9 f4 C
#endif' I) L. L4 h' d. ]
        ret = platform_device_register(&da850_evm_tl_leds_device);
3 Z- K0 u4 i" W        if (ret)" V3 J2 N) d: f3 V( r, I8 i. J
                pr_warning("Could not register som GPIO expander LEDS");0 Z! h7 h, J1 w
        else& U2 ~! c+ m7 y5 s' Q
                printk(KERN_INFO "LED register sucessful!\n");
# l" C! c( h; B2 n' {1 T
; ^% ]- H8 ?2 `6 t& L        return ret;2 c0 C8 `& m/ B, S
}
  T% O! a+ ~+ O1 N. W- M7 L( ~8 j9 B1 w. b
static void __exit led_platform_exit(void)
2 [" U8 q; [# `; ?  R$ O{; Q4 N7 f  p$ ^7 e5 l, \  Q8 Q$ j; I& l
        platform_device_unregister(&da850_evm_tl_leds_device);3 Q9 I* @! W# _3 R7 L1 k

; K0 A+ m4 o( s8 G        printk(KERN_INFO "LED unregister!\n");
4 ]$ r1 F' v8 Q8 ?: r0 k}4 T; y" L5 f- ^4 t+ L2 u$ G
0 h8 H0 X* k' Y
module_init(led_platform_init);/ \" ?# ]9 F0 d
module_exit(led_platform_exit);
+ n9 d# L- `/ [" }! @0 S1 i. `. o0 b; T% v
MODULE_DESCRIPTION("Led platform driver");
( z3 L/ K  p" T$ C/ mMODULE_AUTHOR("Tronlong");* `4 C6 i. B/ Q, P. s0 v
MODULE_LICENSE("GPL");
& b# u, H' X# ?) V, x9 C! `# v" y0 ~+ O. B; ^4 w$ u/ I" C
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-9 12:50 , Processed in 0.039153 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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