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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
6 i% N8 P) l$ S#include <linux/init.h>' ]4 Z8 ^% q8 y, G* ?5 t3 c
#include <linux/module.h>& A, d/ y5 R& s2 y
#include <linux/kernel.h>
) n, S, k6 o, f# O1 T" H5 J#include <linux/types.h>5 E$ P) F/ S  U( ]+ c, e. z8 M
#include <linux/gpio.h>3 I4 @: x9 u5 H' W# R
#include <linux/leds.h>
3 t3 D: o7 y3 G0 j0 R1 F/ x9 M#include <linux/platform_device.h>) [7 |( Z, F3 w) r, A- `

# ~$ v, K, |  }; a4 E6 a) s9 a9 _#include <asm/mach-types.h>
& g0 s9 p0 [6 Q+ z#include <asm/mach/arch.h>2 J5 ]* b# D  V5 V
#include <mach/da8xx.h>, s; t* \9 _* x, E+ E) n. h5 w- B+ h
#include <mach/mux.h>
8 t* Q. V1 m$ G% g# z' }; k/ D
2 {; m$ v- }0 Y5 J#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)/ l8 ^2 `$ x% p& M
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5), m; C. o: `0 s: p% k( @  U
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
, A$ {) _. n$ b% N. u! y2 j#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)+ |' }2 ?. o* P8 ?
/ [4 T$ K6 P! u& o/ O
/* assign the tl som board LED-GPIOs*/
6 m1 |' L8 E  \* s# Nstatic const short da850_evm_tl_user_led_pins[] = {
2 E! W$ F  E$ Z3 [        /* These pins are definition at <mach/mux.h> file */; R6 J3 ~$ k6 V1 j
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
; ?& Z7 S) C8 a7 U1 \: V6 \( y1 d        -19 l  M# S) I# E) H8 r- Z; v7 z
};
1 z/ z) o+ f9 I0 l7 o# Z* P; n4 G  T( \& W; @# n/ K2 x$ I
static struct gpio_led da850_evm_tl_leds[] = {
/ D/ \, t, {  R+ g& J        {; x0 ?" i- K: F+ w( y2 Y
                .active_low = 0,
7 O  `' \  n! I, w1 X8 V' X                .gpio = DA850_USER_LED0,) r0 \: F) M, `( U/ |
                .name = "user_led0",
, e- l% j. J1 ]' p7 k5 h                .default_trigger = "default-on",0 t# }' F, k) J+ o' e, s! c  E
        },
5 ~: h+ h7 |) q- c5 o4 s        {4 q% S9 K+ k0 [7 b7 s
                .active_low = 0,
' M. D- R& ^2 z- D. l2 c                .gpio = DA850_USER_LED1,
8 E, y) B3 Q9 S" R# R6 _0 w                .name = "user_led1",
) a, r+ }( e1 n' v+ Y                .default_trigger = "default-on",, U  r) K6 ]0 `- Q0 A6 i) L
        },
' x* Y; F. _! H8 F        {5 {9 y; S; L4 w% r) t$ k
                .active_low = 0,
! U" W+ k7 I: e" y0 s8 n8 ^                .gpio = DA850_USER_LED2,5 y% S7 `. \9 F2 {" F* x. j& ?$ X
                .name = "user_led2",% ?2 |# @$ U/ T, y/ R7 B# s1 T6 {
                .default_trigger = "default-on",
( p, r4 W0 ~* W. z. T; ]        },  W; p* |& r, U" m$ R
        {; Y1 N% O8 v% ^! A. G* Y$ k: T
                .active_low = 0,
6 Q; P1 X1 z/ b3 h3 ]$ p                .gpio = DA850_USER_LED3,
6 U7 i+ a  @* e- L) P& d                .name = "user_led3",; P/ ]# t2 N  ]3 T3 h% p- `
                .default_trigger = "default-on",
7 ~. J4 q& {" C        },, g. O9 ?$ {1 K2 W0 p
};
! ?- y! s) l( |$ B: j# t5 K2 l) I3 R% b% A
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
3 `2 y: O9 Z2 x. h1 b; K        .leds = da850_evm_tl_leds,
( }4 }3 A9 S4 P5 T# N        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
$ U& K4 l# f+ F. ?- m2 {};7 r  [- D* T# O* |  L! f; k

2 l( Z5 x/ v' R$ ~' d0 Q" e. x* P- A% Gstatic void led_dev_release(struct device *dev)% U8 X  t0 X8 p4 M% k  h: [
{
) M8 I( ~2 O! i* d$ S# v, D9 x( E};, v: `2 A' Y2 }4 m

: k3 [& Y# V/ @+ U5 _: Sstatic struct platform_device da850_evm_tl_leds_device = {
+ W2 t" p! Z+ H2 T        .name                = "leds-gpio",
6 l/ ^: J$ Y+ i: m7 o- t) c4 Z        .id                = 1,7 ?: R* A, K% w" L) e# X/ @
        .dev = {( n$ }; E( ~& f/ W0 G& b
                .platform_data = &da850_evm_tl_leds_pdata,2 j/ i1 C3 [! s+ g' x4 g5 m& F
                .release = led_dev_release,
# t& k, d0 ~# f+ v% B3 a3 F        }1 o5 N1 m+ n8 I1 u" M
};* }/ f. M" u7 Z0 A* {9 j+ v

1 m& ~! k% `6 h# ~& t. |' r& sstatic int __init led_platform_init(void)
" V! p7 k& r; Z  ^{/ U" r; q! @! u- T0 d0 l$ Y, q
        int ret;, C: \4 |$ ]7 T5 p
#if 0
8 N9 [4 R3 V) Q: [        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);* `2 N% f# _4 Z- S8 x) ]
        if (ret)
2 O' p$ v6 s% x' i                pr_warning("da850_evm_tl_leds_init : User LED mux failed :", T# _4 }$ h0 v# `: ?+ z! x
                                "%d\n", ret);
& j) c7 N- C7 U8 _% O#endif# L6 M- N% Y4 Z. [
        ret = platform_device_register(&da850_evm_tl_leds_device);: f4 I# G2 N% J, {
        if (ret)
# Y6 B, ]- L% k2 N8 c; n                pr_warning("Could not register som GPIO expander LEDS");
' a2 B, n- W5 R% `        else
$ A+ ~* v  M, i, L- e( U) u                printk(KERN_INFO "LED register sucessful!\n");
$ e' s2 `4 j# }4 o& |/ W2 n# r! Q& z
9 I. q. A# q# g& X. |        return ret;
/ R: |' a; A5 t# H' T}/ d/ \, P0 R! c6 w
  ^  e+ |$ l0 `, t# y
static void __exit led_platform_exit(void)
5 L; ?: L$ h& g% b( t2 ^{6 D; R) C( @% B& \0 X5 F/ }
        platform_device_unregister(&da850_evm_tl_leds_device);
( L3 e2 m* G8 J/ G4 _6 q# m% K3 D3 q% ?( E9 w& W, c" g
        printk(KERN_INFO "LED unregister!\n");
+ p, x* @# [2 g* P) _5 E, C}
" L& O6 p  U3 @* t; z- T! \- [3 g: k& ?3 t' A
module_init(led_platform_init);( Q  b" F- Q3 D& ^
module_exit(led_platform_exit);" c( R* T: Y- o1 f- ?

3 h, L1 I* g# `* LMODULE_DESCRIPTION("Led platform driver");
0 c7 K: t1 ^4 N0 P7 c1 IMODULE_AUTHOR("Tronlong");
% ~, C* ^. s8 S$ wMODULE_LICENSE("GPL");
2 M' ?8 F% r( Y" p# g* ^' ^, K
1 N7 {: L# a# a: O
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-19 13:13 , Processed in 0.039902 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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