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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。9 E7 Z0 t3 I' M/ n+ ^: Q4 |# V" {
#include <linux/init.h>% U& b  J/ f+ k+ F5 H+ C, g
#include <linux/module.h>9 R+ a$ Y5 G- R. A% R
#include <linux/kernel.h>2 N7 h' C/ o7 j# i3 k
#include <linux/types.h>
1 L7 `/ W8 e2 c" o# X#include <linux/gpio.h>
9 I; _8 ~* S$ W; O' S9 b#include <linux/leds.h>
) @1 u$ @4 D7 L' @- |4 J3 U5 O#include <linux/platform_device.h>4 D* V+ S) B+ }; f9 V4 E1 W; p& E

4 R3 K0 V" s3 q#include <asm/mach-types.h>
( V& F, K' f2 z: {2 B/ N#include <asm/mach/arch.h>
, n6 G) Q4 @5 z' O) i; @+ E' d#include <mach/da8xx.h>3 K% `2 E: i8 K6 K- h0 p
#include <mach/mux.h>: ~/ l9 a+ o! D8 v! V4 ]! H

( k) X! F7 Z8 W#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)2 E: t7 m. z! e7 c
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
5 a3 ?& \8 A' N- z& [#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)- T# Q3 W- G" |) t8 N
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)! t: e  B+ E: ]4 I
2 [2 L$ S: T5 c0 x% ^
/* assign the tl som board LED-GPIOs*/1 P: |4 O) t/ e
static const short da850_evm_tl_user_led_pins[] = {, v8 v8 g. j8 z" F* ^6 T8 i
        /* These pins are definition at <mach/mux.h> file */. |9 ?  n: m3 w5 R& J, X- s; t
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,5 p/ _; J+ s9 q3 j' _
        -1
) O6 L1 o! y* W};
  F# z. Q$ R6 H0 B6 _
8 d3 v6 C1 p! Y- U0 P+ m% Fstatic struct gpio_led da850_evm_tl_leds[] = {
! Y# C/ C' `6 M  \% O- O% E' ~        {
' E+ j$ d+ d4 h3 m! \- c: T+ B! n                .active_low = 0,1 f; W& C5 C1 _- B
                .gpio = DA850_USER_LED0,
" w) i3 z9 R- O                .name = "user_led0",9 o4 e4 U  J) y4 \. M
                .default_trigger = "default-on",7 u- a  o8 `4 }
        },
8 E' i( ?, z  {3 Q        {
# h1 b2 e/ _, P$ i# b' W  s                .active_low = 0,
' {9 d: @2 ~" J# _  X7 e                .gpio = DA850_USER_LED1,
2 O7 Z& A. p% z+ V; X( A4 f4 x" U) Q                .name = "user_led1",% R( q  Y$ H5 \0 l. i
                .default_trigger = "default-on",
% S8 d9 c/ i7 ]/ @, Y0 w        },
4 A9 Q% n! \+ a0 [: z        {# w$ {4 O9 x$ p6 q
                .active_low = 0,
5 {7 r% \! j% F0 t# b! K- q7 i' D                .gpio = DA850_USER_LED2,
3 W3 v( v! r. o( n; u                .name = "user_led2",
: W  ^5 a# ]' O# S$ n1 _9 S                .default_trigger = "default-on",
1 ]* y( |, n5 @9 s0 b: S        },
% \4 K1 c  t; p8 \        {" j; l8 G. W8 A3 ?) g$ c1 w6 q2 M
                .active_low = 0,
( H! R4 L1 t8 F4 O9 X3 C3 C                .gpio = DA850_USER_LED3,
$ ~# c9 f1 R# L( ?& O% e3 N                .name = "user_led3",
" _0 r9 h2 ~, ?& f                .default_trigger = "default-on",$ v6 [0 `* ~3 ^0 g/ `" z" z
        },
$ _/ G$ Y7 t. w% q};/ `' a$ s1 M2 z: V# D

; i+ `0 Z0 D( H" q3 M2 F' |0 Fstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {( C+ n* r( h7 t5 G: u
        .leds = da850_evm_tl_leds,4 L- x7 z( H# u: q
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),1 s+ W" f) m4 D: [) l
};6 ^+ r! Y3 d/ X5 ~5 J" h
7 q: {( g( G  h. M
static void led_dev_release(struct device *dev)
% x$ a# |) a3 s* ~' o{
& B* h  p: x" k! M8 T+ `  n};% r, F+ y/ j0 T

6 J9 {, B  I6 X/ @: E& [static struct platform_device da850_evm_tl_leds_device = {7 |6 T! X& s! _. ]( g  g
        .name                = "leds-gpio",
. a+ M" C+ K5 d( b7 {, v& I        .id                = 1,
1 o4 C  x, m! v, K' a) l2 N9 m% y: v        .dev = {
1 a  J# A& H" Y- F  P% H/ f: J/ `$ [                .platform_data = &da850_evm_tl_leds_pdata,8 Y; G, C+ n7 \5 B+ Z
                .release = led_dev_release,
; \, o& u. b- h; _        }' D5 P' }! D2 c' y; N& p$ B% [% B
};$ G5 Q2 d2 v" d+ \( E! ^) y

( O$ B0 G2 W8 @7 K# wstatic int __init led_platform_init(void)
& ^- B. k6 J8 {3 j; D5 [$ {{" i0 {" |* J3 G/ c; ^
        int ret;
  E- _) A- T$ `1 M#if 0& q" @$ U4 ~8 s
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
- N0 p5 r% s* {9 ?9 C6 ~/ h) \        if (ret)
5 F' M9 h; h( r) T! a. l) y& E4 ?                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
+ z; F2 I2 V- H0 Z) Z. f9 j# v                                "%d\n", ret);
5 y# ^' p/ |- I5 l0 T+ z% W: C% F#endif  L* C. A4 r9 {& X& I5 F4 x
        ret = platform_device_register(&da850_evm_tl_leds_device);
4 Z( D; w* n  P- D1 W2 L        if (ret)
; Z6 o( t# [) b6 ^                pr_warning("Could not register som GPIO expander LEDS");
& m, `: t$ b" W        else9 m4 A0 s1 t0 s" _
                printk(KERN_INFO "LED register sucessful!\n");
/ O. ]; f3 D- W6 g3 I: k4 P, Z; G3 W8 f3 K
        return ret;
: z5 b( ^5 C+ V7 q" O- Z: ]}- p  u* |3 Z" M. z

! P8 C' G: i$ E% Y' N9 }static void __exit led_platform_exit(void)4 Q3 o  m: K' F: V& Z
{
% d# e  L- }* W; u& f4 D, V: F        platform_device_unregister(&da850_evm_tl_leds_device);
) Q$ A: Z) z7 D+ b8 ^8 w8 E6 u/ T- g: J
        printk(KERN_INFO "LED unregister!\n");
* @' e# W7 ]0 ~% f/ h+ Z}. b  R1 m7 l/ }0 S; a  ^

6 S4 m; v; i  wmodule_init(led_platform_init);( Q3 P8 ?# K2 g# }" i" |
module_exit(led_platform_exit);
0 U8 j- k) G* l) o9 G* L9 i) K
" o' X$ Z8 M0 a/ TMODULE_DESCRIPTION("Led platform driver");
0 n- \3 }7 a% e" [. U4 lMODULE_AUTHOR("Tronlong");1 x1 m9 L5 ~8 }8 M
MODULE_LICENSE("GPL");+ n5 g. r0 B' {

- T" }8 G* H) [8 V8 f& x9 M
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-1 09:37 , Processed in 0.040104 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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